我有一个带有嵌套字段的架构,例如
// model.js
module.exports = Mongoose.model('Model', new Mongoose.Schema(
{
Top: {
Middle: {
Bottom: Number
}
}
},
{
strict: 'throw'
})
)
所有这些字段都存在是非常罕见的,并且当一个字段不存在时,生成它的进程将写入null
。我想将严格模式设置为true
,但似乎不应该在应包含对象的字段包含null
的情况下:
// app.js
const Model = require('./model');
router.post('/api' , async (req, res) => {
const doc = new Model(req.body);
const result = await doc.save();
res.json(result);
})
// test
axios.post('/api', { Top: { Middle: null }})
=> ObjectExpectedError: Tried to set nested object field 'Middle' to primitive value 'null' and strict mode is set to throw.
有什么办法可以规避这种行为?不幸的是,让生成数据的过程产生undefined
而不是null
并不是一个简单的选择。