gpt4 book ai didi

node.js - 使用异步 Node.JS 处理 HTTP 请求

转载 作者:太空宇宙 更新时间:2023-11-03 23:05:27 27 4
gpt4 key购买 nike

我已经成功编写了一些 Nodejs HTTP 处理程序来提供数据以响应 HTTP 请求。但是,我编写的所有内容都使用 *Sync 版本的函数。我现在很快就遇到了这种方法的局限性。

但是,我不知道如何在 HTTP 请求上下文中正确使用异步函数。如果我尝试异步调用,处理很快就会失败并返回,而不会给代码处理数据的机会。

正确的做法是什么?我还没有找到任何好的例子,所以任何有关文献的指示都值得赞赏。除此之外,还有一个 GET 请求处理程序的示例,该请求扫描本地目录,然后返回文件名和相应行数的 json 列表(或者实际上是上述显示正确技术的任何 stub 代码)。

最佳答案

这是一个简单的示例:

var http = require('http')
var fs = require('fs')

function dir (req, res) {
fs.readdir('.', function (error, files) {
if (error) {
res.writeHead(500)
res.end(error.message)
return
}
files.forEach(function (file) {
res.write(file + '\n')
})
res.end()
})
}

var server = http.createServer(dir)
server.listen(7000)

使用 node server.js 运行并使用 curl :7000 进行测试。

是的,请求处理程序在执行 readdir 回调之前返回。这是设计使然。这就是异步编程的工作原理。没关系。当文件系统 IO 完成时,将执行回调并发送响应。

关于node.js - 使用异步 Node.JS 处理 HTTP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35712273/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com