【问题标题】:posting objectId in postman在邮递员中发布 objectId
【发布时间】:2016-01-23 18:18:41
【问题描述】:

我正在尝试使用邮递员将此 json 发布到 API

{
"order" : [{ "mealId": 562b2649b2e70464f113c04d, "quantity": 4}],
"service_id" : 562b2649b2e70464f113c04d,
"dest" : "Allabama",
"active": false
}

但我不断收到此错误

SyntaxError: Unexpected token b
    在 Object.parse (本机)
    解析时(C:\nodeprojects\foodDelivery\node_modules\body-parser\lib\types\json.js:88:17)
    在 C:\nodeprojects\foodDelivery\node_modules\body-parser\lib\read.js:108:18
    在 invokeCallback (C:\nodeprojects\foodDelivery\node_modules\body-parser\node_modules\raw-body\index.js:262:16)
    完成后(C:\nodeprojects\foodDelivery\node_modules\body-parser\node_modules\raw-body\index.js:251:7)
    在 IncomingMessage.onEnd (C:\nodeprojects\foodDelivery\node_modules\body-parser\node_modules\raw-body\index.js:308:7)
    在 IncomingMessage.emit (events.js:104:17)
    在 _stream_readable.js:908:16
    在 process._tickCallback (node.js:355:11)

它是一个带有猫鼬的 nodejs api。 这是 json 对象的架构

var mongoose = require('mongoose');
var OrdersSchema = new mongoose.Schema({
order : [{ mealId: mongoose.Schema.Types.ObjectId, quantity: Number}],
service_id : mongoose.Schema.Types.ObjectId,
dest : String,
orderTime : {type:Date, default:Date.now},
completeTime : {type:Date, default:Date.now},
active: Boolean,
});

所以简而言之,问题是当我尝试传递 ObjectId 时,它在“562”之后停止读取并将“b”视为非法字符。

【问题讨论】:

    标签: json node.js mongoose schema postman


    【解决方案1】:

    接收 _id 对象作为字符串而不是 ObjectId, 当你得到这个 id 创建新的 mongo.driver ObjectId

     public async Task<IHttpActionResult> PostExample(string idinstring)
     {
             ObjectId d=new ObjectId(idinstring);
      }
    

    【讨论】:

      【解决方案2】:

      你必须引用字符串:

      {
      "order" : [{ "mealId": "562b2649b2e70464f113c04d", "quantity": 4}],
      "service_id" : "562b2649b2e70464f113c04d",
      "dest" : "Allabama",
      "active": false
      }
      

      【讨论】:

      • 当我尝试得到一个“意外字符串”错误,因为它需要一个 ObjectId 而不是一个字符串
      • 谢谢!我第一次尝试它时,我不小心在一个整体之后遗漏了一个逗号。将它们放在引号中修复了它。再次感谢!
      • 当我从邮递员传递这样的值时,我在 ObjectId 字段中收到 {000000000000000000000000} ......我正在使用 c# 驱动程序......任何解决方案?
      • 如何传递对象 ID 数组?
      猜你喜欢
      • 2021-07-31
      • 2018-11-07
      • 2020-12-31
      • 2021-10-10
      • 2019-06-22
      • 2020-11-12
      • 2015-04-02
      • 2018-07-12
      • 1970-01-01
      相关资源
      最近更新 更多