当新连接时.js是否有机会覆盖 Node 中 post 函数内的现有变量?(快递.js)



也许这是一个愚蠢的问题...但很抱歉,我仍然想问这个:

例如(代码(:

const express = require('express');
app = express();
...
app.post('/form', function(req, res) {
var title = req.body.title;
var content = req.body.content;
//doing something here...
}

(实际(:用户 A 发布到/form 包含一些 JSON 数据 { "title": "hello", "content": "world" }非常非常短的时间后(假设 1ms(
用户 B发布到/form 具有不同的 JSON 数据 { "title": "sup", "content": "nothing" }


真正的问题是:
用户B是否能够覆盖现有变量(标题和内容(的值?

否,因为javascript是单线程的。每个请求都是逐轮处理的,有时如果一个处理涉及耗时的事情(如db fetch(,回调将被推送到事件循环,在耗时的任务完成后执行。

但是,您可以更新全局变量并从另一个请求覆盖它。由于您的变量在函数范围内,因此它们不会被覆盖。每个函数调用都有自己的封闭范围。

最新更新