Node.js 尝试使用Nodejs和Expess将对象传递到外部路由文件
我有我的nodeapp和一个外部路由文件。 我正在尝试将对象clientMap传递到外部路由器 当我尝试使用示例中的语法传递时Node.js 尝试使用Nodejs和Expess将对象传递到外部路由文件,node.js,express,Node.js,Express,我有我的nodeapp和一个外部路由文件。 我正在尝试将对象clientMap传递到外部路由器 当我尝试使用示例中的语法传递时 app.use('/api', apiRoutes)(clientMap); 我总是犯错误 node\u modules\express\lib\router\index.js:140 var search=1+ 请求url.indexOf(“?”) TypeError:无法调用未定义的方法“indexOf” 在Function.handle 这就是我目前使用它的方式
app.use('/api', apiRoutes)(clientMap);
我总是犯错误
node\u modules\express\lib\router\index.js:140 var search=1+
请求url.indexOf(“?”)
TypeError:无法调用未定义的方法“indexOf”
在Function.handle
这就是我目前使用它的方式(只是一些片段,因为这是一个大应用程序),但它不起作用
app.js
var app = express();
var http = require('http').Server(app);
var apiRoutes = require('./routes/apiRoutes');
app.use('/api', apiRoutes)(clientMap);
apiRoutes.js
module.exports = (function (clientMap) {
var router = express.Router();
router.use(function (req, res, next) {
});
router.get('/userlist', function (req, res, next) {
});
return router;
})();
我也试过了,也犯了同样的错误
app.use('/api', apiRoutes(clientMap));
您应该传递到
apirouts
,而不是应用程序。使用:
app.use('/api', apiRoutes(clientMap));
您还希望将函数导出为apirouts
,而不是将其称为IIFE:
module.exports = function (clientMap) {
var router = express.Router();
router.use(function (req, res, next) {
});
router.get('/userlist', function (req, res, next) {
});
return router;
};
谢谢你的回复。我已经更新了原来的问题。我仍然犯同样的错误我想我看到了另一个问题。更新。