我正在使用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中表示函數未定義。
感謝您的幫助!