节点设置文件与MySQL存储

我已经构build了我的第一个Node应用程序,我需要使用5-10个全局variables。 事情是我想能够更改这些值,而无需重新启动服务器。

所以,我设置了一个时间间隔,并从(JSON?)文件或通过一些查询更新这些文件到数据库。

现在,我的更好的select是什么? 在应用程序中使用mysql和读取文件模块。

基于安全的是不是最好将json文件放在公共文件夹后面,并从中读取? 虽然没有SQL注入是可能的,我认为在数据库中也应该是非常安全的。

你们有什么感想 ?? 在节点JS仍然是一个新手。

谢谢

yamljs ,开销是你将需要安装它。 从你的问题,看来你已经在你的应用程序中使用了一堆第三方模块。

为什么不使用node.js本身的一部分呢?

使用fs模块。

例:

 var fs = require('fs'); var obj; fs.readFile('myData.json', 'utf8', function (err, data) { if (err) throw err; obj = JSON.parse(data); }); 

文档: https : //nodejs.org/api/fs.html#fs_fs_readfile_file_options_callback

将configurationvariables传递给服务器的常用技术是通过YAML文件。 通常这个文件在服务器启动的时候被读取一次,但是你可以定期查询它们的文件,看看它最近一次更新的时间,以及文件是否被更改,更新当前正在使用的configurationvariables。

yamljs

 YAML = require('yamljs'); config = YAML.load('myfile.yml'); 

那么您可以使用fs.stat的mtime属性定期检查上次修改文件的时间

 fs.stat(path, [callback]) 

如果您发现上次修改时间已更改,则可以重新读取YAML文件并使用新值更新您的configuration。 (你可能会想做一个健全的检查,以确保文件没有损坏等)

如果你不想自己写文件看逻辑,我build议检查一下chokidar

 // Initialize watcher. var watcher = chokidar.watch('myfile.yml', { ignored: /[\/\\]\./, persistent: true }); // Add event listeners. watcher.on('change', function(path) { // Update config })