例如:
server.js文件
var express = require('express'),
app = express(),
port = 3000,
routes = require('./app/routes/apiRoutes');
routes(app);
app.listen(port);
routes.js文件
'use strict';
module.exports = function( app ) {
var api= require('../controllers/apiController');
app.route('/get').get(api.get);
};
apiController.js文件
'use strict';
exports.get = function(req, res) {
// console.log( req.app ); // access it but it didn't work ?
// here want to access app to set cookie and changed cookie ?
};
如果有其他方式,请帮助我谢谢:)
答案 0 :(得分:1)
如果我正确理解你的问题,你可以用路线做这样的事情:
在routes.js
档案中:
var router = require('express').Router()
router.get('/home', function(req, res, next) {
res.render('index')
})
module.exports = router
在server.js
档案中:
var mainRoutes = require('./routes.js')
app.use(mainRoutes)
最好的方式(在我看来)使用其他文件中的控制器,它使用exports.functionName
表示法:
在someController.js
档案中:
exports.homePage = function(req, res) {
res.render('index')
}
因此,您的路由器将如下所示:
var router = require('express').Router()
var someController = require('./someController.js')
router.get('/home', someController.homePage)
module.exports = router
答案 1 :(得分:1)
采用不同的方式,在app.use
app.js
:
const
express = require('express'),
app = express(),
port = 3000,
routes = require('./app/routes/apiRoutes');
app.use(routes);
app.listen(port);
apiRoutes.js
:
const
router = require('express').Router(),
apiController = require('../controllers/apiController');
router.get(
'/get',
apiController.get);
module.exports = router;
请查看此示例:app.js,some route file