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

时间:2020-08-03 09:49:44

标签: node.js mongodb postman

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
  }

错误: 员工保存错误:{ “驱动程序”:是的, “ name”:“ MongoError”, “索引”:0, “代码”:13297 }

并且无法在Postman中获得响应

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

也许您以前为雇员创建了一个具有相同名称的数据库,而现在尝试使用名为 Employee 的数据库,而您正在使用案例-不敏感的文件系统(适用于Windows?)。

此处employee和Employee将在文件系统上发生冲突,MongoDB拒绝允许两者都存在。

遵循此操作以获取Mongo错误代码mongo error codes