在节点中将 javascript 范围与 expressjs 一起使用的正确方法

Proper way to use javascript scope with expressjs in node

我正在尝试学习 JavaScript 和全栈开发,但我无法完全理解如何正确使用 express with 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);

一旦我取出它,就会抛出一个错误:

资源未定义

您这样做的方式是调用不带参数的命名函数。您应该只传递函数本身:

app.get('/',doStuffwithTheRequest);

只需确保函数定义具有正确的参数(req、res、next),这在您的示例中就是如此。