node.js - 猫鼬 MongoError : 11000
问题描述
我通过 Postman 发送了一个 create post 信号。一次,post 信号是成功的。但下次它失败了。错误信息是这样的。
Error creating new record : {
"driver": true,
"name": "MongoError",
"index": 0,
"code": 11000,
"keyPattern": {
"RoutineParts.userId": 1
},
"keyValue": {
"RoutineParts.userId": null
}
}
我无法理解错误信息,我的邮政编码和用户型号代码是这样的,
// it's post code.
router.post('/',(req,res)=>{
const newRecord = User ({
username : req.body.username,
email : req.body.email,
password : req.body.password
})
newRecord.save((err,docs)=>{
if(!err) {
res.send(docs)
}else {
console.log('Error creating new record : ' + JSON.stringify(err,undefined,2))
}
})
})
// it's user model
const mongoose = require('mongoose')
const userSchema = new mongoose.Schema(
{
username : {type:String},
email: { type: String, required: true},
password: { type: String, required: true, trim: true },
created_at : { type: Date, default: Date.now },
updated_at : { type: Date, default: Date.now },
}
)
const User = mongoose.model('User', userSchema);
module.exports = { User }
我无法理解。事实上,'RoutineParts' 是一个模型,但我没有编写用户文档。并且,在 app.js 中更正了控制器路径
我该如何解决?
这是 RoutineParts 模型
const mongoose = require('mongoose')
const userSchema = new mongoose.Schema(
{
routine_name : {type:String},
userId : { type: String, required: true},
exercise_name : { type: String},
order : { type: Number},
}
)
const RoutineParts = mongoose.model('RoutineParts', userSchema);
module.exports = { RoutineParts }
它是 app.js 的内容
// Connecting data to the MongoDB through Mongoose
require('./db')
const express = require('express')
const app = express()
const PORT = 5000
const bodyParser = require('body-parser')
const userRoute = require('./controller/user')
const routineRoute = require('./controller/routine')
const RP_Route = require('./controller/routineParts')
const EX_Route = require('./controller/excersise')
app.use(bodyParser.json())
app.get("/", function (req, res) {
res.status(201).send("<h1>Hey guys! Hello World !!</h1>");
});
app.listen(PORT, function () {
console.log(`start express server on port ${PORT}`);
});
app.use('/Users', userRoute)
app.use('/Routine', routineRoute)
app.use('/Excersise', EX_Route)
app.use('/RoutineParts', RP_Route)
解决方案
推荐阅读
- ruby-on-rails - 如何使用 Flutter 和 Rails 从头开始构建移动应用程序?
- javascript - 模拟类是从带有 jest 的包中导入的对象的属性
- react-native - 在 Expo 中导入字符串并转换为 JSX
- arrays - 如何在 tableView 中显示 Parse 中的数组
- java - 谷歌地图根据驱动器是否处于活动状态更新地图
- ios - WKWebView 加载完成后活动指示器不会停止旋转
- sql - 如何在 SQL 中使用计数不同的值?
- sql - Excel SQL 查询错误:详细信息:“Microsoft SQL:'=' 附近的语法不正确。Source' 中字符串 ']) 后的未闭合引号。”
- javascript - 单击时在背景图像顶部加载多个图像层
- ruby-on-rails - 在 Heroku 上调试 rails-latex gem | ActionView::Template::Error rails-latex 失败