node.js - 无法在 mongo db 中添加超过 1 个 post 请求
问题描述
我正在使用 mongo db 获取和发布数据,但无法发布超过 1 个请求这是我的代码第二次发布不同的值时我收到错误我无法找到问题,因为我使用不同的值发布但仍然得到同样的错误
代码的第一部分。错误:
"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,
required:true,
unique:false
},
summary:{
type:String,
required:true,
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',(req,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',(req,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))
})
理想情况下,mongoose 应该自动创建 _id,但我们也可以创建自定义 id
推荐阅读
- json - 无法使用 json 包读取我的 json 文件
- unity3d - Unity:如何获得固定关节组件?
- express - 所有 cassandra 物化视图未配置表
- regex - 使用 RE2 Regexp_Extract 在管道之间提取内容
- python-3.x - 如何确保终端搜索 venv 文件夹而不是第三方模块的默认 python 位置?
- java - Objectify 单元测试将数据持久化到 Google Cloud Datastore
- r - XML 到具有重复同级的数据框
- haskell - GHCi ":browse" 如何导入模块?
- docker - could_not_write_file cluster_nodes.config etxtbsy
- ionic-framework - 声明为能够处理“json”类型的请求但使用“http”类型的请求调用的函数