我可以将变量传递给所需的文件吗?

Him*_*ors 3 node.js express

在express中,我正在尝试将我的缩小移动到一个requierd文件:

app.js:

var app = express();
var minify = require("./minify.js");
Run Code Online (Sandbox Code Playgroud)

在该文件中,我尝试设置我的模板引擎.

minify.js:

var app = express();
app.engine('html', mustacheExpress());
Run Code Online (Sandbox Code Playgroud)

后来当我尝试在app.js中使用渲染引擎时,我得到的错误是没有设置模板引擎.如果我在同一个文件中运行它,它可以工作.我认为问题是我声明了两次app变量.如何将app变量传递给minify.js?

And*_*pov 6

问题是您定义了 app变量,并且您当前express通过调用实例化全新实例express().

你需要做的是开始使用函数,以便你可以传递params(还有其他方法,但这是一个适合你的方法):

// app.js
var app = express();
var minify = require('./minify'); // don't include .js!
minify(app); // CALL the function that minify.js exports, passing params

// minify.js
module.exports = function(app) {
    // because app comes as a parameter, it's the very same you've created in app.js
    app.engine('html', mustacheExpress());
}
Run Code Online (Sandbox Code Playgroud)

同样,有许多不同的方法和可能的方法,取决于你想要做什么,但这将在你的情况下完成工作.阅读有关NodeJS的更多信息,它需要系统.