Node.js 如何将应用程序对象传递给模块?
我的server.js是:Node.js 如何将应用程序对象传递给模块?,node.js,express,Node.js,Express,我的server.js是: var express = require('express'); var app = express(); var login = require('login'); app.use('/login', login); 在my login.js中: var express = require('express'); var router = express.Router(); router.get('/', function(req, res) { r
var express = require('express');
var app = express();
var login = require('login');
app.use('/login', login);
在my login.js中:
var express = require('express');
var router = express.Router();
router.get('/', function(req, res) {
res.render('login.jade');
});
module.exports = router;
如何将server.js中的app
对象传递到login.js的范围
我是否可以实例化
var app=express()在login.js中编写>并使用它?然后会有两个不同的app
实例吗?您可以在server.js上导出它,或者将它设置为global
或将其作为参数传递
export app;
import { app } from './server';
或
或:
login.js
function(app) {
// login stuff here
}
您可以在server.js上导出它,或者将它设置为全局的,或者将其作为参数传递
export app;
import { app } from './server';
或
或:
login.js
function(app) {
// login stuff here
}
在ES6(ECMAScript 6)中:
在ES5中:
server.js
module.exports: {
app: express()
}
login.js
var app = require('path').app
在ES6(ECMAScript 6)中:
在ES5中:
server.js
module.exports: {
app: express()
}
login.js
var app = require('path').app
在你的server.js中,只需使用require('login')(app)代码>
在您的login.js中:-
module.exports = function (app) {
app.get('/', function(req, res) {
res.render('login.jade');
});
};
在你的server.js中,只需使用require('login')(app)代码>
在您的login.js中:-
module.exports = function (app) {
app.get('/', function(req, res) {
res.render('login.jade');
});
};
相关人士:谢谢。这正是我想要的。测试成功了!相关人士:谢谢。这正是我想要的。测试成功了!我想使用login.js中的passport
组织登录内容,这需要一些中间件项目。@OldGeezer-uhm,好的。我不喜欢在主文件之外的任何地方使用app
。@OldGeezer在Tanks中添加了第三个选项,但上面Josh Crozier提供的链接正是我需要的。我还注意到Node.js Express应用程序的Visual Studio模板使用了相同的方法。我想使用login.js中的passport
组织登录内容,这需要一些中间件项目。@OldGeezer-uhm,好的。我不喜欢在主文件之外的任何地方使用app
。@OldGeezer在Tanks中添加了第三个选项,但上面Josh Crozier提供的链接正是我需要的。我还注意到Node.js Express应用程序的Visual Studio模板使用了相同的方法。