我有我的nodeapp和一个外部路由文件。 我试图将对象clientMap传递给外部路由器
当我尝试使用示例中的语法时
var app = express();
var http = require('http').Server(app);
var apiRoutes = require('./routes/apiRoutes');
app.use('/api', apiRoutes)(clientMap);
我总是得到错误
node_modules \ express \ lib \ router \ index.js:140 var search = 1 +
req.url.indexOf( '?');
TypeError:无法调用未定义的方法'indexOf' 在Function.handle
这是我目前的方式(只是片段因为这是一个很大的应用程序),这是行不通的
app.js
module.exports = (function (clientMap) {
var router = express.Router();
router.use(function (req, res, next) {
});
router.get('/userlist', function (req, res, next) {
});
return router;
})();
apiRoutes.js
app.use('/api', apiRoutes(clientMap));
我也试过并得到同样的错误
valve.ValveId as valve.Brand + ' ' + valve.Model + ' ' + valve.Notes for valve in valves
答案 0 :(得分:2)
您应该转到apiRoutes
,而不是app.use
:
app.use('/api', apiRoutes(clientMap));
您还希望将函数导出为apiRoutes
,而不是将其称为IIFE:
module.exports = function (clientMap) {
var router = express.Router();
router.use(function (req, res, next) {
});
router.get('/userlist', function (req, res, next) {
});
return router;
};