min*_*iml 4 javascript node.js express
如果使用Javascript复制引用的对象,那么就快速克隆req,并res通过他们到每个请求处理之前的对象?如果没有,那么如何快速处理同时运行,并使用相同的参考路线之间可能发生的冲突req和res?
Express不克隆req和res.您可以在此示例应用中看到:
var http = require('http');
var express = require('express');
var app = express();
var testReq, testRes;
app.use(function(req, res, next) {
console.log('middleware');
testReq = req;
testRes = res;
next();
});
app.get("*", function(req,res) {
console.log('route')
console.log('req the same? ' + (req === testReq)); // logs true
console.log('res the same? ' + (res === testRes)); // logs true
res.send(200);
});
http.createServer(app).listen(8080);
Run Code Online (Sandbox Code Playgroud)
测试curl:
$ curl localhost:8080
Run Code Online (Sandbox Code Playgroud)
这是一个有用的功能 - 它意味着中间件功能可以使用req和res传递数据到下游功能.例如,授权中间件可能会添加req.user属性.
并发不是一个问题,因为Node.js是单线程的 - 两个路由不可能在任何给定时间运行.
它也不会通过多个路由运行单个请求 - 您可以添加另一个get("*")路由,您将看到它不会被调用.
| 归档时间: |
|
| 查看次数: |
1095 次 |
| 最近记录: |