【发布时间】:2018-09-19 14:43:54
【问题描述】:
在这里完成 node.js 初学者。我在某处看到了这个“hello world”示例
// Load the http module to create an http server.
var http = require('http');
// Configure our HTTP server to respond with Hello World to all requests.
var server = http.createServer(function (request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.end("Hello World\n");
});
// Listen on port 8000, IP defaults to 127.0.0.1
server.listen(8000);
// Put a friendly message on the terminal
console.log("Server running at http://127.0.0.1:8000/");
非常简单的代码,其中服务器使用带有纯文本“Hello World”的简单 HTTP 响应来响应 HTTP 请求
我还准备了一个库来从 javascript 发出 HTTP 请求
http.get(options, function(resp){
resp.on('data', function(chunk){
//do something with chunk
});
}).on("error", function(e){
console.log("Got error: " + e.message);
});
在这里,您发出一个带有一些选项的 HTTP 请求,然后在回调中对响应执行一些操作。
如果在 HTTP 请求到达 node.js 服务器时发出这样的 API 请求,会发生什么?既然流程必须是单线程的,那么如何在 HTTP API 请求的回调中改变 node.js 向客户端发送的响应的状态?到那时响应不会发送到事件循环吗?如何在这个系统中模拟同步请求,以便您可以使用 API 请求的响应向客户端发送响应?
【问题讨论】:
标签: javascript node.js rest http event-driven