如何对数据库变量进行健全性和验证检查

how to do sanity and validation checks on database variables?

本文关键字:验证 检查 数据库 变量      更新时间:2023-09-26

配置文件(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条件来检查此变量是否未定义。但我正在寻找更好的解决方案。

我听说javascript的"||"运算符可以提供帮助,但不确定如何提供帮助

"||"运算符可以帮助您定义标准,例如:

var host = conf.mongodb.host || "127.0.0.1";

这意味着"主机"将从"conf"中获得值,如果它不是伪造的,则为标准值"127.0.0.1"

注意:如果您将"conf.mongodb.host"定义为一个错误值,例如0,则将应用默认值!看看JS中的Falsy值。

根据您喜欢的行为,您可能希望抛出异常,或者实现高级检查,以确保例如"主机"实际上是一个有效的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");