我正在使用Express和Node构建Web应用程序,并试图将我的路由因素考虑在内,以便在同一文件中没有数百个路由。本网站提供的projects
目录中的不同文件,所以我做的routes/
一个名为projectRoutes.js
处理路由项目文件:如何使用Node.js Express模块化路由
var express = require('express');
module.exports = function() {
var functions = {}
functions.routeProject = function(req, res) {
res.render('pages/projects/' + req.params.string, function(err, html) {
if (err) {
res.send("Sorry! Page not found!");
} else {
res.send(html);
}
});
};
return functions;
}
然后,在我的routes.js
,我有这个...
var projectRoutes = require("./projectRoutes");
router.get('/projects/:string', function(req, res) {
projectRoutes().routeProject(req, res);
});
在projectRoutes.js
中有没有更好的方法来构造这个功能?换句话说,我怎么可以配置projectRoutes.js
让我可以写的代码的后续行index.js
:
router.get('/projects/:string', projectRoutes.routeProject);
上面似乎是正常的方式来处理这样的事情,但目前上述行抛出一个错误在Node中表示函数未定义。
感谢您的帮助!