我有一个路由处理程序,当我转到指定的路径时,它会调用身份验证控制器中的注册函数:
module.exports = app => {
app.post("/signup", authentication.signup());
};
我的身份验证控制器:
exports.signup = function(req, res, next) {
res.send({ success: true });
};
但是当我启动服务器时,我说它无法读取undefined的属性“send”。由于甚至无法运行我的服务器,我无法使用邮递员来测试我的API路由。
为什么在我访问路线之前尝试拨打电话?我使用我的快递应用程序使用节点http库运行我的服务器。
答案 0 :(得分:2)
app.post("/signup", authentication.signup());
调用 authentication.signup
并将其返回值传递到app.post
,与foo(bar())
调用 {的方式完全相同{1}}并将其返回值传递给bar
。
相反,只需将函数本身传递给foo
; Express将在稍后调用它以响应该路由上的POST:
app.post