gpt4 book ai didi

javascript - Node.js 服务器和 PHP 服务器之间的差异与理论混淆

转载 作者:太空宇宙 更新时间:2023-11-04 02:15:29 24 4
gpt4 key购买 nike

我已经能够用 Node.js 和 php 编写应用程序有一段时间了,但只是真正发现了一个奇怪的差异,我觉得我仍然不完全理解。

我想我注意到的区别是,假设我们必须让客户端访问由 php 运行的 Web 应用程序,他们将在后端有两个完全不同的所有数据实例(变量数组等)。而在 Node.js 中,它们并不完全是这样。

这是我为了避免一些困惑而进行的测试:

PHP 测试

前端js

$.post("/ajax.php", {test:"test"}, function(result){
console.log(result);
});

ajax.php

$testarr = array();

if(isset($_POST['test'])){
$testarr[] = $_POST['test'];
print_r($testarr);
}

...在此示例中,如果我在两个不同的浏览器中访问应用程序,甚至在同一个客户端中访问该应用程序,前端控制台将始终输出一个包含单个元素的数组。因此,数组本质上会在刷新/新请求时重置。

Node.js 测试

前端js

$.post("/test", {test:"test"}, function(result){
console.log(result);
});

app.js

var testarr = [];
app.post("/test", function(req, res){
testarr.push(req.body.test);
console.log(testarr);
});

但是,在这里,当我即使从不同的浏览器刷新页面时,数组也不会重置,并且每个请求都会得到 [“test”、“test”、“test”等]。来自两个不同浏览器的两个不同客户端如何访问同一个数组?通常数据必须通过数据库、特殊请求等共享,对吗?

我显然误解了 Node.js 的一些大哲学,如果有人能给出很好的解释,我将不胜感激。

最佳答案

不同之处在于 PHP 会为每个请求创建一个新环境,而 Node.js 则不会。

关于javascript - Node.js 服务器和 PHP 服务器之间的差异与理论混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35958731/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com