无法通过邮递员发帖,为什么?

问题描述 投票:0回答:3

employee.js

const mongoose = require('mongoose');

var Employee = mongoose.model('Employee', {
  name: { type: String },
  position: { type: String },
  office: { type: String },
  salary: { type: Number }
});

module.exports = { Employee };

employeeController.js

const express = require('express');

var router = express.Router();

var { Employee } = require('../models/employee');

router.get('/', (req, res) => {
Employee.find((err, docs) =>{
    if (!err) {res.send(docs);}
    else {console.log('Error in Retriving Employees: '+ JSON.stringify(err, undefined, 2));}
   });
});

router.post('/', (req, res) => {
var emp = new Employee({
    name: req.body.name,
    position: req.body.position,
    office: req.body.office,
    salary: req.body.salary,
});
    emp.save((err, doc) => {
    if(!err) {res.send(doc); }
    else {console.log('Error in employee save:' + JSON.stringify(err, undefined, 
   2));}
 });
});

 module.exports = router;

在邮递员中我添加:

  {
"name":"Anida Mujezin",
"position":"Full stack developer",
"office":"Sarajevo",
"salary":3000
  }

错误: 员工保存错误:{ “司机”:是的, “名称”:“MongoError”, “索引”:0, “代码”:13297 }

并且无法在 Postman 中得到回复

node.js mongodb postman
3个回答
2
投票

尝试更改数据库的名称。该错误代码似乎表明已经创建了具有该名称的数据库,并且该名称需要是唯一的。

但是,正如错误消息所示,也有可能您已经创建了一名名为“Anida Mujezin”的员工,我认为该员工在您的数据库中用作标识符。


1
投票

也许您之前为employee创建了一个同名的数据库,现在尝试使用名为Employee的数据库,并且您正在使用不区分大小写的文件系统(Windows?)。

这里员工和员工会在文件系统上发生冲突,而 MongoDB 拒绝允许两者同时存在。

按照此获取 Mongo 错误代码 mongo 错误代码


0
投票

我没有错误,但我无法使用邮递员发布消息和作者

型号:

import mongoose from "mongoose";

const postSchema = new mongoose.Schema({
  message: {
    type: String,
    required: true,
  },
  author: {
    type: String,
    required: true,
  },
  likers: {
    type: [String],
  },
},
{
  timestamps: true
}
);

const Post = mongoose.model('post', postSchema);

export default Post;

控制器:

import Post from "../models/post.model.js";

async function getPosts(req, res) {
  try {
    const posts = await Post.find();
    return res.status(201).json({ posts });
  } catch (error) {
    console.error("Erreur lors de la récupération des posts :", error);
    return res.status(500).json({ message: "Erreur lors de la récupération des posts." });
  }
}

async function setPosts(req, res) {
  try {
    const {message, author} = req.body;

    if (!message || !author) {
      return res.status(400).json({ message: "Le champ message et le champ auteur sont requis." });
    }

    const post = await Post.create({
      message: message,
      author: author
    });

    return res.status(201).json({ post });
  } catch (error) {
    console.error("Erreur lors de l'insertion du post :", error);
    return res.status(500).json({ message: "Erreur lors de l'insertion du post." });
  }
}

export { setPosts, getPosts };

邮递员路线帖子:

{
    "message": "Le champ message et le champ auteur sont requis."
}

路由器:

import express from 'express';
import {setPosts, getPosts} from '../controllers/post.controller.js';

const router = express.Router();
router.use(express.json());

router.get("/", getPosts);

router.post("/", setPosts);

router.put("/:id", (req, res) => {
  res.json({ messageId: req.params.id });
})

router.delete("/:id", (req, res) => {
  res.json({ messageId: "Post supprimé id : " + req.params.id });
})

router.patch("/like-post/:id", (req, res) => {
  res.json({ messageId: "Post like with id : " + req.params.id });
})

router.patch("/dislike-post/:id", (req, res) => {
  res.json({ messageId: "Post dislike with id : " + req.params.id });
})

export default router;

我的获取路线有效,但没有恢复任何内容,因为我没有输入消息。

邮递员路线获取:

{
    "posts": []
}

你能帮我吗? 我已经找了3个多小时了...

© www.soinside.com 2019 - 2024. All rights reserved.