Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在NodeJS中更新内存中的变量?_Javascript_Json_Node.js - Fatal编程技术网

Javascript 如何在NodeJS中更新内存中的变量?

Javascript 如何在NodeJS中更新内存中的变量?,javascript,json,node.js,Javascript,Json,Node.js,假设我有一个变量varloli=[{pop:true},{pup:false}] 然后,我有一个路由,它生成如下内容loli.push(req.boy)和另一个路由,该路由使用loli数组进行响应,如res.json(loli) 我在Stack和Node文档中搜索了一些问题,但是我的res.json(loli)只发送原始数组,尽管它已经改变了 我是否可以监视此变量上的更改,或者告诉节点不要缓存,或者不要执行它正在执行的任何操作?如果不看到出现问题的可运行代码,很难准确地说出问题所在,但下面的一些

假设我有一个变量
varloli=[{pop:true},{pup:false}]

然后,我有一个路由,它生成如下内容
loli.push(req.boy)
和另一个路由,该路由使用
loli
数组进行响应,如
res.json(loli)

我在Stack和Node文档中搜索了一些问题,但是我的
res.json(loli)
只发送原始数组,尽管它已经改变了


我是否可以监视此变量上的更改,或者告诉节点不要缓存,或者不要执行它正在执行的任何操作?

如果不看到出现问题的可运行代码,很难准确地说出问题所在,但下面的一些代码可以满足您的要求。启动它,然后转到查看对象的初始值,然后转到将字符串值“foo”推入数组,然后再次转到查看它是否存在

var express = require('express');
var app = express();

var loli = [ { pop: true}, {pup: false } ]

app.get('/push/:boy', function (req, res) {
  loli.push(req.params.boy);
  res.send('Pushed!');
});

app.get('/show', function (req, res) {
  res.json(loli);
});

var server = app.listen(3000, function () {
  var host = server.address().address;
  var port = server.address().port;

  console.log('Example app listening at http://%s:%s', host, port);
});

它取决于变量的定义位置以及函数如何访问它-通过作用域或作为参数。如果不了解您的操作方式,就无法诊断您的问题。节点不会在请求之间保留变量状态。每次你点击服务器,
loli
都会用你硬编码的分配给它的东西重新初始化。如果变量是在请求函数之外定义的,这是不正确的。如果你能展示一个最小的代码示例来演示你的问题,那将非常有帮助。是的,我在做假设。可能需要等待一些代码。请立即尝试。谢谢你的回答。