Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.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 如何更改另一个js文件中的值_Javascript_Node.js_Express - Fatal编程技术网

Javascript 如何更改另一个js文件中的值

Javascript 如何更改另一个js文件中的值,javascript,node.js,express,Javascript,Node.js,Express,我有这样一个constants.js文件: var keyvalues = { "var1": 0.08, "var2": 0.08, "var3": 0.07, "var4": 0.065 } app.post('/updateValue', (req, res)=>{ let a = constants.keyvalues const existingKey

我有这样一个constants.js文件:

var keyvalues = {
    "var1": 0.08,
    "var2": 0.08,
    "var3": 0.07,
    "var4": 0.065
}
app.post('/updateValue', (req, res)=>{
    let a = constants.keyvalues
    const existingKey = req.body.key;
    const newValue = req.body.newvalue;
    
    constants.keyvalues[existingKey] = newValue; =======> (1)
})
我想更改另一个js文件的值

我的app.js文件如下:

var keyvalues = {
    "var1": 0.08,
    "var2": 0.08,
    "var3": 0.07,
    "var4": 0.065
}
app.post('/updateValue', (req, res)=>{
    let a = constants.keyvalues
    const existingKey = req.body.key;
    const newValue = req.body.newvalue;
    
    constants.keyvalues[existingKey] = newValue; =======> (1)
})
(1) :在这一行中,我想更新constant.js文件中的值

我的app.js文件将在生产阶段发布。我想使用此端点物理地更新一些值


从app.js文件更改constants.js文件值的正确方法是什么?

您必须导出对象

如果您使用ES5,请使用

let keyValues = {...};
module.exports = {keyValues}
ES6同等标准:

let keyValues = {...};
export {keyValues}; 
import {keyValues} from 'path/to/constants';
console.log(keyValues)
keyValues[key] = value
在要访问对象的文件中,使用以下命令

const {keyValues} = require("path/to/constants");
console.log(keyValues)
keyValues[key] = value
ES6同等标准:

let keyValues = {...};
export {keyValues}; 
import {keyValues} from 'path/to/constants';
console.log(keyValues)
keyValues[key] = value

如果它们可以改变,它们就不是常数了,是吗?它们是否需要在重新启动服务时保持不变?如果是这样,您需要将这些值写入某个位置(文件、数据库等),并在启动时重新加载它们。这是否回答了您的问题@艾哈迈德·加费尔(ahmed gaafer)和我删除的答案一样。我没有注意到问题上的node.js标记,所以你的链接和我的答案不一样。他需要做模块导出的工作,比如下面的崩溃回答。仅仅更改内存中变量的值实际上不会更改javascript程序中硬编码的该变量的值,因此,更改不会在程序重新启动时持续。您需要从配置文件中读取这些值,并在其中保存所有更改。