Javascript Ajv JSON模式验证器行为怪异

Javascript Ajv JSON模式验证器行为怪异,javascript,node.js,ajv,Javascript,Node.js,Ajv,我用以下代码解析了JSON文件和模式: const parsedData = JSON.parse(fs.readFileSync(jsonDataPath, 'utf8')); const parsedSchema = JSON.parse(fs.readFileSync(jsonSchemaPath, 'utf8')); let ajvInstance = ajv({ allErrors: true }); let valid = ajvInstance.valid

我用以下代码解析了JSON文件和模式:

const parsedData = JSON.parse(fs.readFileSync(jsonDataPath, 'utf8'));
    const parsedSchema = JSON.parse(fs.readFileSync(jsonSchemaPath, 'utf8'));

    let ajvInstance = ajv({ allErrors: true });
    let valid = ajvInstance.validate(parsedSchema, parsedData);
    console.log(valid);
    if (valid) {
        console.log("User data is valid");
    } else {
        console.log("User data is INVALID!");
        console.log(ajvInstance.errors);
    }
当我运行代码时,输出是“用户数据有效”,我对该语句有疑问

然后我尝试将结果原子化(实际输出在//)之后:


这简直把我吓坏了。这里发生了什么?

不看一下您的模式就很难判断。然而,AJV总是返回
true
并不一定奇怪。最后请参见注意,只需使用
require('./myfile.json')
(无需使用
json.parse()
+
fs.readFileSync()
)即可在Node.js中需要*.json文件。
    console.log(parsedSchema.flag); //  true
    console.log(parsedData.flag); // "0"
    console.log(ajvInstance.validate(parsedSchema.flag, parsedData.flag)); // true
    console.log(parsedSchema.flag == parsedData.flag); // false
    console.log(parsedSchema.flag === parsedData.flag); // false