如何将app对象传递给模块?

时间:2017-02-13 17:06:33

标签: node.js express

我的server.js是:

var express = require('express');
var app = express();

var login = require('login');
app.use('/login', login);

在我的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的范围?

我可以在login.js中实例化var app = express();并使用它吗?那么会有两个不同的app

实例

3 个答案:

答案 0 :(得分:1)

您可以在server.js上export或将其设为global或将其作为参数传递。

export app;
import { app } from './server';

global.app = app;

或:

app.use('/login', login(app));

login.js

function(app) {
   // login stuff here
}

答案 1 :(得分:1)

ES6中的

(ecmascript6):

server.js
export const app = express()

login.js
import { app } from '../server'
ES5中的

server.js
module.exports: {
  app: express()
}

login.js
var app = require('path').app

答案 2 :(得分:0)

在您的server.js中使用require('login')(app);

在你的login.js中: -

module.exports = function (app) {
    app.get('/', function(req, res) {
        res.render('login.jade');
    });
};