一尘不染

NodeJ中的response.writeHead和response.end

node.js

var https = require('https');
var fs = require('fs');

var options = {
  key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'),
  cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem')
};

https.createServer(options, function (req, res) {
  res.writeHead(200);
  res.end("hello world\n");
}).listen(8000);
  1. 谁能解释我为什么 在createServer方法中调用writeHeadand end方法。
  2. 在createServer方法中传递的options对象的主要目的是什么。

阅读 352

收藏
2020-07-07

共1个答案

一尘不染

writeHead和的那些调用end不在createServer方法中完成,而是在回调中完成。

如果您将回调拆分为一个单独的函数,则会更容易一些:

function handleRequest(req, res) {
  res.writeHead(200);
  res.end("hello world\n");
}

https.createServer(options, handleRequest).listen(8000);

因此,在这里我们定义一个handleRequest函数,然后将其传递给createServer调用。现在,只要我们创建的node.js服务器收到传入请求,它就会调用我们的handleRequest方法。

这种模式在JavaScript中非常常见,并且是node.js异步事件处理的核心。

2020-07-07