首页 > 解决方案 > 猫鼬 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)

标签: node.jsmongodbmongoose

解决方案



推荐阅读