当前位置: 首页 > 面试题库 >

NodeJ中的response.writeHead和response.end

解阳泽
2023-03-14
问题内容
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对象的主要目的是什么。

问题答案:

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异步事件处理的核心。



 类似资料:
  • 问题内容: 在Raspberry Pi上安装了NodeJS,是否可以检查rPi是否通过NodeJs连接到Internet? 问题答案: 一种快速而肮脏的方法是检查Node是否可以解决: 这并不是完全万无一失,因为您的RaspPi可以连接到Internet但由于某种原因无法解析,并且您可能还需要检查以区分“无法解析”和“无法连接到名称服务器,因此连接可能下来”)。

  • 我已将我的应用部署到 ununtu。 这是垃圾箱/万维网: 我在我的电脑中创建了一个主机:< code > 64 . 143 . 255 . 122 app . site . com ,我在< code > http://app . site . com:3000 中打开了浏览器,但它不工作。 但是,如果我通过,在服务器内部,并编写 它将起作用,我将得到正确的页面。 可能是什么问题? 谢啦

  • 问题内容: 我正在使用Cookies模块来设置cookie。这是我的代码: 但是在文档中,我还没有找到如何 销毁 该Cookie的方法。 任何建议,将不胜感激。 问题答案: 无法根据HTTP规范删除cookie。为了有效地“删除” cookie,您可以将过期日期设置为过去的某个日期。本质上,这将为您带来以下收益(根据Cookies模块文档): 或根据HTTP规范: 两者都应该起作用。您可以替换与一

  • 我正在尝试使用我在https://github.com/bevacqua/dragula/issues/289#issuecomment-277143172我的Ionic项目中找到的一些代码。 当我运行代码时,我收到一个错误,错误指的是 我如何调整下面的代码来创建节点。计时器线路工作?

  • 问题内容: 我试图在不同于其父目录的目录中执行子进程。 我正在做上面的事情(尽管运行“ pwd”当然不是我最后要做的事情)。不管我为cdw选项提供了什么值,最终都会将父进程的pwd写入stdout。 我想念什么? (我确实确保通过cwd选项传递的路径确实存在) 问题答案: 该选项是 当前工作目录的 缩写,是拼写的,不是拼写的。

  • 问题内容: 我刚刚开始学习Clojure。我注意到的第一件事是没有循环。可以,我可以重复。因此,让我们看一下这个函数(来自Practical Clojure): 为了在Javascript中实现相同的功能,我们使用如下循环: 计时后,结果如下所示: 然后,我继续尝试经典的fib(在阅读了此文章之后): 在Clojure中: 在js中: 再次,性能有很大的不同。 注意我在clojure中使用(时间(