我正在尝试学习JavaScript和全栈开发,而且我不能完全理解如何正确地使用JavaScript来实现....
我的问题是这样的:
在网上看到的每个教程中都使用了以下语法:
app.get('/',function(request,response,next){
var something = request.body.something;
if(something){do stuff...}
else{do other stuff...}
})
如果我不想使用匿名函数但预定义的命名函数会怎样?
我如何在快递方法中使用它们?
像这样的东西会是o.k吗? :
function doStuffwithTheRequest(request,response,next){
var something = request.body.something;
if(something){do stuff...}
else{do other stuff...}
};
app.get('/',doStuffwithTheRequest(req,res,next));
如果是这样,以这种方式传递参数的正确方法是什么?
我试过像这样的编码但是我似乎无法在预定义时将参数传递给函数...
我得到了上述问题的答案,但我想查看问题的附加内容......
我将如何从这样的内容中取出内部回调函数:
function doStuffwithTheRequest(req,res,next){
Somemiddleware.someMethod({parameter:req.session.value},function(err,returningparameter){
res.locals.info = returningparameter;
if(something){do stuff...}
else{do other stuff...}
})
};
app.get('/',doStuffwithTheRequest);
一旦我把它拿出来就会抛出错误:
res未定义
答案 0 :(得分:1)
你正在这样做,你正在调用没有参数的命名函数。你应该只传递函数:
app.get('/',doStuffwithTheRequest);
确保函数定义具有正确的参数(req,res,next),它在您的示例中执行。