【问题标题】:Does Node JS Express module handle Requests Asynchronously?Node JS Express 模块是否异步处理请求?
【发布时间】:2016-06-16 18:22:48
【问题描述】:

我是 NodeJs 和 Express 服务器的新手。 我有一个处理请求的简单应用程序:

app.post('/addToken',   tokens.addToken);
app.post('/sendNoti',   iosNotification.sendNotification);`
app.get('/allNames',    names.babyNames);`

var server = app.listen(8081, function () {

    var host = server.address().address
    var port = server.address().port

    console.log("server listening at http://%s:%s", host, port)
})

如果我要在客户端创建 3 个 http 请求,并一个接一个地执行它们,这个模块是并行执行还是一个接一个地执行?

【问题讨论】:

    标签: javascript node.js http express asynchronous


    【解决方案1】:

    是的,如果您在承诺列表中创建它们。它允许您同时启动所有 http 请求,然后等待他们的答复。就像你对线程所做的那样。

    请参阅本教程了解如何设置它们

    https://strongloop.com/strongblog/promises-in-node-js-with-q-an-alternative-to-callbacks/

    【讨论】:

    • 我希望客户端在请求创建中是独立的,而不是向他确认特定类型的创建。有什么办法可以保证服务器端的异步?
    • 我会说默认情况下,它在服务器端不是异步的,你必须这样做。自己做,或者使用像npmjs.com/package/express-promise这样的npm库@
    【解决方案2】:

    不,Express 不会异步处理请求。你创建的3个http请求会一个接一个地执行,因为只有一个主线程。

    只有 I/O 操作异步发生。

    【讨论】:

      猜你喜欢
      • 2019-02-07
      • 1970-01-01
      • 2021-08-12
      • 1970-01-01
      • 2020-12-20
      • 2021-02-18
      • 2018-04-26
      • 1970-01-01
      • 2016-02-07
      相关资源
      最近更新 更多