节点设置文件与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 })