在node.js中运行文件后使用“inquirer”保存variables的值

我有一个迷你游戏程序,其中II要求用户input一个数字,如果数字与随机select的数字相匹配,我会减去对手variables的另一个随机数。 否则,对手会伤害我。 我得到的程序与减法工作,但问题是,每次我在node.js(即节点fileName.js 4)中运行我的文件,我的程序中的所有variables重置。 当从“HP”中减去“损坏”时,HP应该被保存,但是它保持复位。 mainCharacterzombie.hp不应该被重置。

 var StrawberryCough = require("inquirer"); var mainCharacter = 70; var zombie = { hp: 15, num: 0 } StrawberryCough.prompt([ { type: "input", message: "Random Number 1-5: ", name: "number" } ]).then(function(user){ parseInt(user.number); var ranNum = Math.round(Math.random() * (5 - 1) + 1); zombie.num = ranNum; if(user.number === zombie.num) { var damage = Math.round(Math.random() * (5 - 1) + 1); console.log("Character Damage: ", damage); zombie.hp -= damage; console.log("zombie hp", zombie.hp); if(zombie.hp <= 0) { console.log("You win!") return; } } else if(user.number !== zombie.num) { var zomDamage = Math.round(Math.random() * (5 - 1) + 1); console.log("Zombie Damage: ", zomDamage); mainCharacter -= zomDamage; console.log("main hp", mainCharacter); if(mainCharacter <= 0) { console.log("You lose!"); return; } } }); 

如果您希望数据持久存在,则应该查看关键值存储区,数据库,将其保存到文件中,否则每次运行该文件时:

 var mainCharacter = 70; var zombie = { hp: 15, num: 0 } 

当文件被加载时将会设置这些值,因为这些行会被执行,但是不会永久存储这些值,并且在脚本结束后它们将不再存在。

它看起来像你正在寻找快速和糟糕的解决scheme,所以我会build议使用文件系统,并保存到像这样的东西:gameMemory.json

gameMemory.json的内容:

 { "mainCharacter" : 70, "zombie" : { "hp": 15, "num": 0 } } 

加载来自gameMemory.js的值:

 fs = require('fs'); //loads the gameMemory into a json object var gameMemory =JSON.parse(fs.readFileSync('./gameMemory.json', 'utf8')); 

然后当你完成操作variables,并希望他们坚持:

 fs.writeFileSync('./gameMemory.json', JSON.stringify(gameMemory, null, 2) , 'utf-8');