,可以通过以下步骤实现:
npm install mongoose joi
const mongoose = require('mongoose');
const Joi = require('joi');
mongoose.connect('mongodb://localhost/mydatabase', { useNewUrlParser: true, useUnifiedTopology: true })
.then(() => console.log('Connected to MongoDB'))
.catch(err => console.error('Failed to connect to MongoDB', err));
这里假设MongoDB数据库的连接URL为mongodb://localhost/mydatabase
,你可以根据实际情况进行修改。
const mySchema = new mongoose.Schema({
myArray: {
type: [Number],
required: true,
validate: {
validator: function(arr) {
return arr.length === 2;
},
message: 'myArray must contain exactly 2 values'
}
}
});
const MyModel = mongoose.model('MyModel', mySchema);
这里使用了Mongoose的Schema来定义数据结构,myArray
字段的类型为数组,其中元素的类型为数字。required: true
表示该字段是必需的,validate
属性用于自定义验证器,确保myArray
包含恰好2个值。
const schema = Joi.object({
myArray: Joi.array().items(Joi.number()).length(2).required()
});
const validationResult = schema.validate({ myArray: [1, 2] });
if (validationResult.error) {
console.error(validationResult.error.details[0].message);
} else {
console.log('Validation passed');
}
这里使用Joi定义了一个验证规则,确保myArray
是一个包含恰好2个数字的数组。然后,使用schema.validate
方法对数据进行验证,如果验证失败,将会输出错误信息。
const data = new MyModel({ myArray: [1, 2] });
data.save()
.then(() => console.log('Data saved'))
.catch(err => console.error('Failed to save data', err));
这里创建了一个MyModel
实例,并将数据保存到MongoDB数据库中。
以上就是在数组nodejs mongoose JOI上存储2个值的数组的完整步骤。在实际应用中,你可以根据需要进行适当的修改和扩展。
领取专属 10元无门槛券
手把手带您无忧上云