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);
writeHead
和end
createServer方法中的方法。答案 0 :(得分:32)
对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异步事件处理的核心。
答案 1 :(得分:13)
在您的代码中,调用writeHead()
来编写响应的标头,应用程序将提供给客户端。 end()
方法都将响应的内容发送给客户端,并向服务器发出完全发送响应(标题和内容)的信号。如果您仍然要发送任何其他内容,则应改为调用write()
响应对象的res
方法。
options
JSON对象是您可以使用的修饰符,用于覆盖createServer()
方法的默认行为。在你的代码的情况下:
+键:用于SSL的私钥(默认为空)
+ cert:要使用的公共x509证书(默认为null)
您可以在this section关于response.writeHead()
方法的Node.js API文档中找到更多信息。
您可以在this section的Node {j} API文档中找到有关https.createServer()
方法的更多信息。
答案 2 :(得分:2)
response.writeHead(200)
向请求发送响应标头。状态代码是一个3位HTTP状态代码,如404.
此方法只能在消息上调用一次,并且必须在调用response.end()之前调用它。
如果在调用之前调用response.write()或response.end(),则会计算隐式/可变标题并为您调用此函数。
答案 3 :(得分:0)
据我所知,如果你没有将response.end()放在最后,那么你的网页将继续加载,因此response.end()用于告诉服务器数据已被加载
答案 4 :(得分:-1)
res.writeHead
方法用于向浏览器返回状态代码,如果它是客户端状态代码或服务器端状态代码,则浏览器将抛出错误。 res.end
方法是确保在嵌套代码或其他情况下,在准备好响应之前不返回响应。
options
对象的目的是确保在 前声明该页面已使用https加密。