配置文件(conf.json):
{
"mongodb": {
"host": "127.0.0.1",
"port": "3000",
"db": "myproject"
}
}
在.js文件中的用法
var conf = require('./conf.json')
var host = conf.mongodb.host;
var port = conf.mongodb.port;
var db = conf.mongodb.db;
var url = "mongodb://"+host+":"+port+"/"+db;
在此之后,我正在使用 url 变量建立与mongodb的连接。
我想要实现的是在尝试连接到mongodb之前,它应该验证从conf.json文件中设置的所有变量。如果它们未定义或某些内容,则控制权应返回,而不是尝试尝试以下代码。
注意:我想过使用 if 条件对此变量进行undefined检查。但我正在寻找更好的解决方案。
我听说过“||” javascript的运营商可以提供帮助,但不确定如何?
答案 0 :(得分:0)
" ||"运营商可以帮助您定义标准,例如像这样:
var host = conf.mongodb.host || "127.0.0.1";
这意味着"主持人"从" conf"中分配值如果它是非虚假的,否则标准值" 127.0.0.1"。
警告:如果你定义了" conf.mongodb.host"像一个虚假的价值,例如0,默认将被应用! 看看Falsy values in JS。
根据您喜欢的行为,您可能希望改为抛出异常或实施高级检查以确保例如"主机"实际上是一个有效的IP地址。
如果您绝对想要使用" ||"运营商,试试:
function throwErr(msg){
throw new Error(msg);
}
var host = conf.mongodb.host || throwErr("Mongo host undefined");
var port = conf.mongodb.port || throwErr("Mongo port undefined");
var db = conf.mongodb.db || throwErr("Mongo database name undefined");