Javascript JSON或对象文本作为节点中的配置文件
从这两篇文章中我们知道了Javascript JSON或对象文本作为节点中的配置文件,javascript,json,node.js,object,Javascript,Json,Node.js,Object,从这两篇文章中我们知道了JSON和objectliteral之间的区别 今天,我和我的同事讨论了这个主题,关于在Node.js中使用JSON或Object Literal作为配置文件 我同事的意见是使用JSON // message.json { "aa": "content", "enable": true, "media": { "event": "Winner", "message": "Congratulations!" }
JSON
和objectliteral
之间的区别
今天,我和我的同事讨论了这个主题,关于在Node.js
中使用JSON
或Object Literal
作为配置文件
我同事的意见是使用JSON
// message.json
{ "aa": "content",
"enable": true,
"media": {
"event": "Winner",
"message": "Congratulations!"
}
}
// app.js
filepath = "./message.json";
var file = fs.readFileSync(filepath, 'utf-8');
console.log(JSON.parse(file));
但是,我坚持使用对象文本
// message.js
exports.value = {
"aa": "content",
"enable": true,
"media":
{
"event": "Winner",
"message": "Congratulations!",
}
}
//app.js
var vv = require('./message.js');
console.log(vv.value.media.message);
有人能告诉我他们之间的区别吗?有没有更好的呢?我想主要的区别在于,在一天结束时,您将需要一个JavaScript对象来处理。因此,如果您是从JSON文件加载配置,那么将有额外的步骤将JSON字符串解析为JS对象
根据此JSON文件的大小,解析它时可能会有性能损失。这取决于个人偏好,但我发现
导出
方式更方便,并且是一种需要模块的节点方式
我认为在后面,require做的操作与第一种方法中的操作类似,所以为什么要重新发明轮子呢。这主要是基于观点的,但JSON配置有一个主要优势——它与语言无关,因此如果您需要一个非JS脚本来读取配置以用于其他目的,您可以很容易地做到这一点 使用JSON还有助于确保您的配置是静态的,并且消除了向其中添加逻辑和函数的诱惑
请注意,您也可以
require('./message.json')
as-of-Node>0.5.x,因此没有真正的功能差异 这可以归结为您团队的最佳实践,但我建议使用JSON
- node.js约定将json用于配置文件——例如,package.json就是一个例子
- 此外,像JSON这样的序列化格式可以由多个系统处理,而使用JavaScript源文件来处理则变得非常困难。您的配置文件可能会在某个时候从配置服务器提供;在这种情况下,简单的序列化肯定是最好的选择,因为配置服务器可能最终使用数据库来保存配置信息,并根据需要将其作为JSON进行准备
您知道可以直接执行以下操作吗:
var data=require('file.json')
和require()
将为您解析JSON?看见