node.js中res的范围

时间:2018-12-01 15:07:29

标签: node.js function request

var express = require('express');
var app = express();

app.use(express.static('public'));
app.get('/index.htm', function (req, res) {
   res.sendFile( __dirname + "/" + "index.html" );
})
app.get('/process_get', function (req, res) {
   // Prepare output in JSON format
   response = {
      first_name:req.query.first_name,
      last_name:req.query.last_name
   };
   console.log(response);
   res.end(JSON.stringify(response));
})

var server = app.listen(8081, function () {
   var host = server.address().address
   var port = server.address().port

   console.log("Example app listening at http://%s:%s", host, port)
})

1)我从教程的角度获得了该教程

2)我认为/ process_get中的req将为空,但是在这里req拥有了我所有的数据

3)我在想这些功能的范围仅限于该功能 但是如何访问上一个函数的值

4)如果代码中有多个req对象,我们将如何处理

2 个答案:

答案 0 :(得分:0)

req是一个对象,代表对服务器的请求。这是服务器接收到请求后将调用的回调参数。您可以将其视为app.get到路由/ process_get的结果。 res的工作方式相同,但是它代表服务器发送的响应。 res.end()是将响应有效载荷发送回请求者的地方。

req和res都仅存在于回调函数的范围内。这就是为什么路由/index.htm/process_get的回调中都存在req和res的原因。

希望这使它更清晰。

答案 1 :(得分:0)

然后,

Express.js将在处理请求时将其作为中间件堆栈的一部分进行调用,并赋予它 req res next 争论。