我试图在app.post()
方法的回调中传递一些预定义的函数。我接下来没有定义错误。以下是我的代码。请告诉我在哪里做错了或者我在这里错过任何概念?
var express = require('express');
var app = express()
app.post('/api/signup', function(req, res) {
validateParams(req, res, next),
dbCall(req, res, next),
sendResponse(req, res)
})
我在我的进程之后定义并导入了每个函数并返回next()。
我的validateParams函数如下:
validateParams = function(req, res, next) {
console.log("at validator ", req);
next();
}
module.exports = validateParams;
我的dbCall函数如下:
dbCall = function(req, res, next) {
console.log("at dbCall ", req);
next();
}
module.exports = dbCall;
我的sendResponse函数如下:
sendResponse = function(req, res) {
console.log("at dbCall ", res);
res.send("Response sent successfully");
}
module.exports = sendResponse;
答案 0 :(得分:2)
您可能忘记在回调中添加app.post('/api/signup', function(req, res, next) {
validateParams(req, res, next),
dbCall(req, res, next),
sendResponse(req, res)
})
参数。
"results":
[{ "email1@domain1.com",
"email2@domain2.com",
"email3@domain3.com",
"email4@domain4.com",
"email5@domain5.com" }]
答案 1 :(得分:2)
我认为您正在尝试使用validateParams(req, res, next)
和dbCall(req, res, next)
作为中间件功能。在这种情况下,你需要这样的东西:
const validateParams = (req, res, next) => {
// do stuff here
next();
}
const dbCall = (req, res, next) => {
// do stuff here
next();
}
app.post('/api/signup', validateParams, dbCall, function(req, res) {
sendResponse(req, res)
})
您可以阅读更多here