javascript - 关于node.js的一点问题
阿神
阿神 2017-04-11 13:33:43
[JavaScript讨论组]

各位大神,晚上好!事情是这个样子的,我今天下载了一本《Node.js实战》的电子书,看到其中有关于处理提交的表单的内容,于是就试着跟着做了起来(没想到刚开始就卡壳了),先把代码放上来:

var http = require("http");
var arr = [];
function show(res){
var html ='Document'
          +'

Test

' +arr.map(function(item){ return '
  • '+item+'
  • ' }).join(" ") +'
    ' +'' +'' +'
    '; res.end(html); } var server = http.createServer(function(req, res) { if (req.method == 'POST') { req.on('data', function(chunk) { arr.push(chunk.toString()); show(res); }) } else { show(res); } }).listen(3000);

    其大致过程是这样的:
    每次提交到本页面的内容都会累加到一个数组中,然后再把每次提交的内容返回到当前页面中,下面的图演示了大致过程。

    我的疑问是:
    每次提交后相当于刷新了本页面,那么按道理讲原本存储在数组中的数据应该在每次提交后被清空啊,举个例子,比如第一次填写的是“Jack”,程序将“Jack”放到了数组中,当我第二次填写“lee”并提交的时候,相当于重新载入了页面,之前保存在数组中的“jack”应该不会存在了,但是为什么却依然如上图所示,竟然还保存着呢?

    举个类似情况的php的例子(看懂我上面所表达意思的大神可以不看下面的内容

    
    
        Document
    
    
        
    EOT; ?>

    php的过程也是将post过来的数据存入数组,但是在每次提交后,php并没有保存上一次的数据,嗯,PHP是“正常”的,<( ̄︶ ̄)>

    阿神
    阿神

    闭关修行中......

    全部回复(3)
    阿神

    你的arr是全局的,就是说你的arr是和你的Node服务共存亡的,只要你的Node服务没有挂掉,arr从服务启动之初就会一直存在。换句话说,只要另一个人访问你的页面,并且提交数据,你这边刷新也是能够看见的。

    PHP中文网

    后台将这些数据作为数组保存了,每次提交数组添加数据,然后读取数组的数据显示。

    怪我咯

    你的arr声明的是一个全局的变量

    热门教程
    更多>
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送
    PHP中文网APP
    随时随地碎片化学习

    Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号