回调函数的参数如何在JavaScript Node.js中工作

时间:2018-07-24 08:54:26

标签: javascript node.js callback asynccallback

当我们调用异步函数时,是否可以传递带有参数的回调函数。我无法理解我需要记住回调函数中参数的顺序。 例如快递

app.get('/',function(req,res))

由于我看了一个教程,所以我知道参数的数量及其包含的内容。

3 个答案:

答案 0 :(得分:1)

  

当我们调用异步函数时,是否可以传递带有参数的回调函数。

取决于功能。现代的倾向于返回Promise而不是接受回调。

  

我是否需要记住回调函数中参数的顺序。

不,您可以查找它们。

  

如何知道参数的数量及其包含的内容

通过阅读函数的文档,您会将回调传递给

答案 1 :(得分:0)

app.get或任何应用。[CRUD方法]在同一参数中接受2或3个参数(请求响应下一个)订购。 下一个可选

答案 2 :(得分:0)

尝试运行此代码。在我们进入get方法之前,您可以看到有2个中间件函数(像函数数组一样传递)。 get方法之后的另一个中间件。这将使您对请求的顺序处理方式以及请求的处理方式有基本的了解。

var express = require("express");
var app = express();
var port = 3000;
var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));



var middleware1 = function(req,res,next){
  console.log("Before Get method middleware")
  console.log("middleware1");
  next();
}
var middleware2 = function(req,res,next){
  console.log("middleware2");
  next();
}

app.get("/", [middleware1 , middleware2],(req, res, next) => {
    console.log("inside Get middleware")
    req['newparam'] = "somevalue"; // or somecode modiffication to request object
    next(); //calls the next middleware
});

app.use('/',function(req,res){
  console.log("After Get method middleware")
  console.log(req['newparam']); //the added new param can be seen
  res.send("Home page");
})


app.listen(port, () => {
    console.log("Server listening on port " + port);
});