我使用Express创建了一个Node.js项目,并在使用自定义路由时遇到了此异常。
500 TypeError:fn不是函数
在回调(/WallaceBot/WallaceBot/node_modules/express/lib/router/index.js:272:11)
在param(/WallaceBot/WallaceBot/node_modules/express/lib/router/index.js:246:11)
通过时(/WallaceBot/WallaceBot/node_modules/express/lib/router/index.js:253:5)
在Router._dispatch(/WallaceBot/WallaceBot/node_modules/express/lib/router/index.js:280:5)
在Object.Router.middleware [作为句柄](/WallaceBot/WallaceBot/node_modules/express/lib/router/index.js:45:10)
在下一个(/WallaceBot/WallaceBot/node_modules/express/node_modules/connect/lib/http.js:204:15)
在Object.methodOverride [作为句柄](/WallaceBot/WallaceBot/node_modules/express/node_modules/connect/lib/middleware/methodOverride.js:35:5)
在下一个(/WallaceBot/WallaceBot/node_modules/express/node_modules/connect/lib/http.js:204:15)
在Object.bodyParser [作为句柄](/WallaceBot/WallaceBot/node_modules/express/node_modules/connect/lib/middleware/bodyParser.js:88:61)
在下一个(/WallaceBot/WallaceBot/node_modules/express/node_modules/connect/lib/http.js:204:15)
我在app.js中声明路由
var webhook = require('./routes/webhook.js');
app.get('/', routes.index);
app.get('/webhook', webhook);
在我的webhook.js中
/*
* GET Webhook.
*/
exports.webhook = function(req, res){
res.render('index', { title: 'Webhook' })
};
但是,我使用另一种方法在app.js中声明路由,例如
app.get('/webhook', function(req, res){
res.render('index', { title: 'Webhook' })
});
我没有那个例外。
有人知道为什么吗?
最佳答案
作为其他答案的替代解决方案,您可以将webhook.js文件更改为如下所示:
/*
* GET Webhook.
*/
exports = module.exports = function(req, res){
res.render('index', { title: 'Webhook' })
};
关于javascript - Express&Node.js异常:500 TypeError:fn不是函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37282397/