如何解决无法在mongo资料库中添加多个发布请求
我正在使用mongo db来获取和发布数据,但无法发布多个请求,这是我的代码在第二次发布不同的值时遇到错误,因为我使用的是其他语言,所以无法找到问题要发布的值,但仍然出现相同的错误
代码的第一部分。错误:
"driver": true,"name": "MongoError","index": 0,"code": 11000,"keyPattern": {
"id": 1
},"keyValue": {
"id": null
}
const express = require('express')
const app=express();
const cors=require('cors')
const mongoose=require('mongoose');
mongoose.connect('mongodb://localhost:27017/test1',{useNewUrlParser: true,useUnifiedTopology: true,useCreateIndex: true}).then(()=>{console.log("connected")}).catch(err=>console.log(err));
const bodyParser = require("body-parser")
app.use(bodyParser.urlencoded({ extended: true }));
app.use(cors());
app.use(express.json());
const userroute=require('./routes/user')
app.use('/user',userroute);
app.listen(8000,()=>console.log("running on 8000"));
const mongoose = require('mongoose')
const userschema=new mongoose.Schema({
name:{
type:String,required:true,unique:false
},img:{
type:String,summary:{
type:String,unique:false
}
})
module.exports=mongoose.model("User",userschema)
const express=require('express')
const User = require('../model/User.model')
const router=express.Router()
router.get('/',(req,res)=>{
User.find().then(users=>res.json(users)).catch(err=>res.json(err))
})
module.exports= router;
router.post('/add',res)=>{
const name=req.body.name;
const img=req.body.img;
const summary=req.body.summary;
const details = new User({name,img,summary});
details.save().then(()=>res.json(" added ")).catch(err=>res.json(err))
})
router.delete('/:id',res)=>{
User.findByIdAndDelete(req.params.id).
then(()=>res.send("deleted")).catch((err)=>res.send(err));
})
解决方法
添加答案以编写代码,在注释部分,理解代码变得混乱。
router.post('/add',(req,res)=>{
const name=req.body.name;
const img=req.body.img;
const summary=req.body.summary;
const _id = mongoose.Types.ObjectId();
const details = new User({_id,name,img,summary});
details.save().then(()=>res.json(" added ")).catch(err=>res.json(err))
})
理想情况下,猫鼬应该自动创建_id,但我们也可以创建自定义ID
,我遇到了完全相同的问题,我解决它的方法是下载最新版本的mongodb,https://www.mongodb.com/try/download/community,使用新版本更新环境变量中的路径,下载最新版本的mongo shell,最后重启电脑。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。