Я новичок в mongoose (MongoDB) и Nodejs, я создаю службы RestFul для операций CRUD, однако моя проблема заключается в том, что для выражения Schema дополнительные свойства SchemaType не рассматриваются во встроенной проверке mongoose, где какон рассматривает только обязательное имущество.Ниже приведена моя модель для справки:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
let ProductSchema = new Schema({
name: {
type: String,
required: true,
minlength:2,
maxlength:10
},
price:{
type: Number,
required:true,
min:2,
max:100
},
})
//Export the model
module.exports = mongoose.model('Product', ProductSchema);
Итак, в приведенной выше модели есть такие свойства, как min, max для типа данных Number и minlength и maxLength для типа данных String, которые вообще не рассматриваются дляпроверка выполняется перед сохранением в MongoDB.
Мне не хватает какой-либо конфигурации в этом?я просмотрел документацию mongoose, а также множество постов stackoverflow, но не получил никакой информации по этому поводу.
Вот и мой контроллер:
const Product = require('../models/product.model');
// Simple version, without validation or sanitation
exports.test = function (req,res) {
res.send('Greetings from the Test Controller!');
};
exports.product_create = function (req,res,next) {
let product = new Product(
{
name: req.body.name,
price: req.body.price
}
);
product.save(function (err) {
if(err){
return next(err);
}
res.send('Product created Successfully');
}
)
};
exports.product_details = function (req,res, next) {
Product.findById(req.params.id, function (err, product){
if(err) {
return next(err);
}
res.send(product);
})
};
exports.product_update = function (req, res, next) {
Product.findOneAndUpdate(req.params.id, {$set: req.body},opts, function (err, product){
if(err) return next(err);
res.send('Product Updated');
})
};
exports.product_delete = function (req,res,next) {
Product.findOneAndRemove(req.params.id, function (err) {
if(err) return next(err);
res.send('Deleted product');
})
};
Пожалуйста, помогите мне, если я что-то упустил, но это нужно включить в него.Спасибо.