不能用邮递员发帖,为啥?

Posted

技术标签:

【中文标题】不能用邮递员发帖,为啥?【英文标题】:Can't post with postman, why?不能用邮递员发帖,为什么? 【发布时间】:2020-11-23 09:18:07 【问题描述】:

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 中得到响应

【问题讨论】:

只需使用console.log(err) 阅读错误或运行res.send(err) 以了解发生了什么 【参考方案1】:

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

但是,正如错误消息所暗示的那样,您也有可能已经创建了一个名为“Anida Mujezin”的员工,我假设它被用作数据库中的标识符。

【讨论】:

【参考方案2】:

也许您以前为 employee 创建了一个同名数据库,现在尝试使用名为 Employee 的数据库,而您正在使用 case-不敏感的文件系统(Windows?)。

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

按此查看 Mongo 错误代码 mongo error codes

【讨论】:

以上是关于不能用邮递员发帖,为啥?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我不能从我的 Xamarin Froms 应用程序发布到我的 .net 核心 web api

贴吧语音贴不能用蓝牙耳机吗

博客园发帖软件

我不能使用 ajax 调用 api 但邮递员调用没问题

不能再用我的 Rails 应用和考拉在朋友墙上发帖了

为啥有些设备不能用 SetupDiGetDeviceInterfaceDetail() 枚举?