Javascript 什么';It’乘快车的最佳方式是什么;app&x27;对象从单独的路由文件中删除?
在Express 4中,默认情况下,路由从单独的文件加载:Javascript 什么';It’乘快车的最佳方式是什么;app&x27;对象从单独的路由文件中删除?,javascript,node.js,express,Javascript,Node.js,Express,在Express 4中,默认情况下,路由从单独的文件加载: app.use('/', routes); 将加载routes/index.js 我有一个附加到app本身的第三方库。是否有从routes/index.js内部访问app的首选方式 我曾经考虑过依赖注入ie,routes/index.js module.exports = function(app){ (routes go here) } 然后: app.use('/', routes(app)) 但我想知道是否有更好的办
app.use('/', routes);
将加载routes/index.js
我有一个附加到app
本身的第三方库。是否有从routes/index.js
内部访问app
的首选方式
我曾经考虑过依赖注入ie,routes/index.js
module.exports = function(app){
(routes go here)
}
然后:
app.use('/', routes(app))
但我想知道是否有更好的办法从单独的路由文件中访问express“app”对象的最佳方式是什么?您只需在路由处理程序中通过req.app访问app即可我查看了许多应用程序生成器,每个人的做法都不同 大多数情况下,虽然我看到它的工作原理与你的要求相反。路由模块不会让应用程序传入,它们只是返回自己并连接到应用程序 我喜欢使用以下模式: 路由器/hello.js:
var express = require('express');
var router = express.Router();
router.get('/hello', function (req, res) {
res.send('Hello, World!');
});
module.exports = router;
app.js:
var express = require('express');
var app = express();
app.use('/sample', require('./routers/hello'));
// other routers are attached
module.exports = app;
server.js:
var http = require('http');
var app = require('app');
var server = http.createServer(app);
server.listen(3000):
因此,routers/中的模块返回一个Express Router对象,该对象随后在各自的路径(路由)上连接到应用程序
这是从上得到启发的,但是使用路由而不是路由器。我的建议是,使用链接的生成器并从那里开始。AFAICT这不是问题的答案。在
routers/hello.js
中,它没有访问expressapp
对象。