【发布时间】:2018-11-01 18:14:38
【问题描述】:
我是 node.js 的新手,并且熟悉 Express。以下代码是我的困惑之源:
var server = http.createServer(handleRequest);
function handleRequest(req, res) {
var path = req.url;
switch (path) {
case "/n":
return renderPage_1(req, res);
default:
return renderPage_2(req, res);
}
}
我了解服务器需要接受一个 HTTP 请求(req)。但是,如果我们要返回一个响应,为什么响应也是回调函数中的一个参数呢?我一直陷入死胡同,认为它与响应对象的范围有关,尽管我不确定。
非常感谢您对此事进行澄清。我一直无法找到描述我的困惑的资源。
最好, 遵守
【问题讨论】:
-
因为你没有返回响应......在这种情况下,返回除了终止函数之外什么都不做。
-
查看文档。
-
@KevinB 在这种情况下,switch语句返回renderPage_1(req,res)的结果。我不明白它除了终止函数之外什么都不做,因为否则它默认为 renderPage_2(req,res)。总体而言,我的代码有效,我了解如何编写它以使其有效,但我不知道引擎盖下发生了什么,如果在原始问题中不够清楚,抱歉。
-
响应参数包含一个可用于构建/发送响应的对象。这就是它的目的。没有它,您将无法响应客户端。
-
基本请求处理通常意味着您调用
res.send(reply)或res.render(view, params)。这就是 express 的构建方式。
标签: javascript node.js http express