与Node.js服务器和PHP服务器之间的差异之间的理论混淆
Confusion with theory between the differences of Node.js servers and PHP servers
我已经能够在node.js和php中编写应用程序一段时间了,但是只是真正发现了一个奇怪的差异,我觉得我仍然不完全理解。
我想我已经注意到的区别在于,假设我们必须访问由 php 运行的 Web 应用程序的客户端,它们将在后端拥有两个完全不同的所有数据实例(变量数组等)。在节点.js中,它们并不完全。
这是我为避免一些混乱而做的测试:
PHP测试
前端 JS
$.post("/ajax.php", {test:"test"}, function(result){
console.log(result);
});
阿贾克斯.php
$testarr = array();
if(isset($_POST['test'])){
$testarr[] = $_POST['test'];
print_r($testarr);
}
。在此示例中,如果我在两个不同的浏览器中访问应用程序,甚至在同一客户端中访问该应用程序,前端控制台将始终输出一个包含单个元素的数组。因此,数组基本上在刷新/新请求时重置。
节点.js测试
前端 JS
$.post("/test", {test:"test"}, function(result){
console.log(result);
});
应用.js
var testarr = [];
app.post("/test", function(req, res){
testarr.push(req.body.test);
console.log(testarr);
});
但是,在这里,当我甚至从不同的浏览器刷新页面时,数组不会重置,并且我最终在每个请求上都得到 ["test"、"test"、"test" 等]。来自两个不同浏览器的两个不同客户端如何像这样访问同一个数组?通常数据必须通过数据库,特殊要求等共享,对吗?
我显然误解了节点的一些大哲学.js我希望任何人有一个很好的解释。
不同之处在于 PHP 为每个请求创建一个新环境,而 node.js 则没有。
我不是最大的 PHP gury,但我认为你覆盖了你的 PHP 数组而不是推入新元素。您可以使用 array_push() 向您的 testarr 添加一些内容。
相关文章:
- 什么's本地node.js服务器和python简单http服务器之间的区别
- 在javascript客户端和java服务器之间共享Google Analytics ClientID
- 最小化在javascript中客户端/服务器之间发送的数据
- javascript/jQuery date.toString(“yyyy-MM-dd HH:MM:ss”)在服务器之间
- 节点在服务器之间共享数据&客户
- 如何在同一域中托管的 JS 应用和 OAuth2.0 服务器之间安全地通信
- 与Node.js服务器和PHP服务器之间的差异之间的理论混淆
- 客户端和服务器之间存在时差
- 模拟浏览器和服务器之间的不同时区以进行本地测试
- 通过 HTTP 在两个节点.js服务器之间传输文件
- RequireJS:如何处理浏览器和服务器之间共享的代码的不同模块依赖关系
- 用户和服务器之间的HTML5同步
- 在 JSF 页面中估计客户端和服务器之间的连接速度
- 在 socket.io 服务器之间切换
- HTML客户端和Node.js服务器之间的变量
- 计算客户端和服务器之间的网络延迟
- Java客户端和Java服务器之间的区别混淆
- 不同域上客户端和服务器之间的安全连接
- 同一内网服务器之间的跨域访问
- Node.js:服务器之间的连接