如何在Node.js中声明一个静态数组?

问题描述 投票:0回答:1

我试图创建一个名为 "category "的静态数组,我希望它能在我的Node.js应用程序中被初始化一次,我的意思是,当我关闭应用程序并再次运行时,我希望它能保持 "category "数组的状态。我的意思是,当我关闭应用程序并再次运行它时,我希望它保持 "categories "数组的状态。虽然我希望它在这个应用程序的生命周期中只声明一次。

router.post("/add_category", (req, res, next) => {
   var category = req.body.category;
   categories.push(category);
   res.render("index", { categories });
});
javascript arrays node.js static javascript-objects
1个回答
2
投票

最简单的解决方案是将数组写成JSON文件,然后在服务器启动时将其加载回来。

let categories = require('./categories.json');

router.post("/add_category", (req, res, next) => {
   var category = req.body.category;
   categories.push(category);
   fs.writeFile(`./categories.json`, JSON.stringify(categories), () => {
       res.render("index", { categories });
   });
});

Node.js本身没有任何自动持久化的变量,这些变量会自己保存到磁盘上,并在下次运行程序时自动可用。 你必须自己编写代码。


2
投票

你应该需要一个数据库来实现这种数据的持久化。但有时,一个完整的数据库(MongoDB,SQL)可能会被认为是矫枉过正,因为你只需要保存一个简单的数组。所以,可以考虑使用 "node-persist "包,这里有一个可能的解决方案。

const storage = require('node-persist');
storage.initSync();
storage.setItem('categories', [ . . . ] );
console.log(storage.getItem('categories'));

0
投票

这就是数据库的作用。考虑使用一些SQL或NoSQL数据库,即使服务器被重新设置,也会存储值。

© www.soinside.com 2019 - 2024. All rights reserved.