Node.js 如何有效地分离路由代码

Node.js 如何有效地分离路由代码,node.js,express,Node.js,Express,哑巴/新手问题 我正在学习/使用Node/Express4中的API,我想将我的路由划分为另一个模块。我让它使用以下代码,但继续重复使用require('express')语句对我来说似乎很尴尬。。。有没有办法将更多的代码从routes.js文件移到server.js中,并在routes模块中保留my.get和.post语句?提前谢谢 server.js: 'use strict'; var express = require('express'); var routes = require('

哑巴/新手问题

我正在学习/使用Node/Express4中的API,我想将我的路由划分为另一个模块。我让它使用以下代码,但继续重复使用require('express')语句对我来说似乎很尴尬。。。有没有办法将更多的代码从routes.js文件移到server.js中,并在routes模块中保留my.get和.post语句?提前谢谢

server.js:

'use strict';
var express = require('express');
var routes = require('./routes');

var app = express();

app.use('/api', routes);

app.listen(3000, function() {
    console.log('Listening);
});
routes.js

var express = require('express'); // how do I get rid of this line?
var router = express.Router(); // can I move this to server.js?

var apiRoute = router.route('');

apiRoute.get(function (req, res) {
    res.send('api GET request received');
});

module.exports = router; 

你的计划是正确的。重用
var express=require('express')实际上很酷语句。导入(需要)模块是模块化开发的基石,允许您在项目文件中保持关注点的分离

就模块化添加路由而言:问题在于
routes.js
具有误导性

为了模块化地分离路线,您应该使用几个名为
.js
的模块。这些模块将包含所有路由代码以及任何其他配置或必要功能。然后,您可以在app.js中将它们附加到:

var apiRoute = router.route('/api');
apiRoute.use('/<yourResource', yourResourceRouter);
然后在bike.js中:

var express = require('express');
var router = express.Router(); 

var bikeRoutes = router.route('/');

bikeRoutes.get(function (req, res) {
    res.send('api GET request received');
});

module.exports = bikeRoutes; 

从这里很容易看出,您可以构建许多不同的资源并不断地嵌套它们。

谢谢您。。。我确实打算使用以每个资源/模型命名的单独模块。。。但我担心所有重复的require/import语句都会对服务器内存和性能产生负面影响。再次感谢!
var express = require('express');
var router = express.Router(); 

var bikeRoutes = router.route('/');

bikeRoutes.get(function (req, res) {
    res.send('api GET request received');
});

module.exports = bikeRoutes;