размещение objectId в почтальоне

Я пытаюсь опубликовать этот json в API с помощью почтальона

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

но я продолжаю получать эту ошибку

SyntaxError: Unexpected token b
    at Object.parse (native)
    at parse (C:\nodeprojects\foodDelivery\node_modules\body-parser\lib\types\json.js:88:17)
    at C:\nodeprojects\foodDelivery\node_modules\body-parser\lib\read.js:108:18
    at invokeCallback (C:\nodeprojects\foodDelivery\node_modules\body-parser\node_modules\raw-body\index.js:262:16)
    at done (C:\nodeprojects\foodDelivery\node_modules\body-parser\node_modules\raw-body\index.js:251:7)
    at IncomingMessage.onEnd (C:\nodeprojects\foodDelivery\node_modules\body-parser\node_modules\raw-body\index.js:308:7)
    at IncomingMessage.emit (events.js:104:17)
    at _stream_readable.js:908:16
    at process._tickCallback (node.js:355:11)

это API nodejs с мангустом. Это схема для объекта 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» как недопустимый символ.


person digiwebguy    schedule 24.10.2015    source источник


Ответы (2)


Вы должны указать строки:

{
"order" : [{ "mealId": "562b2649b2e70464f113c04d", "quantity": 4}],
"service_id" : "562b2649b2e70464f113c04d",
"dest" : "Allabama",
"active": false
}
person michelem    schedule 24.10.2015
comment
Когда я пытаюсь это сделать, я получаю неожиданную ошибку строки, потому что она ожидает ObjectId, а не строку - person digiwebguy; 24.10.2015
comment
Спасибо! в первый раз, когда я попробовал это, я случайно пропустил запятую после одного из целых. Помещение их в кавычки исправило это. Спасибо еще раз! - person digiwebguy; 24.10.2015
comment
Я получаю {0000000000000000000000000} в поле ObjectId, когда я передаю такие значения от почтальона.... Использую драйвер С#... какие-либо решения? - person Malar; 22.04.2016
comment
Как я могу передать массив идентификаторов объектов? - person midnightgamer; 13.08.2020

получите объект _id как строку, а не как ObjectId, когда вы получите этот идентификатор, создайте новый mongo.driver ObjectId

 public async Task<IHttpActionResult> PostExample(string idinstring)
 {
         ObjectId d=new ObjectId(idinstring);
  }
person lior Bennaim    schedule 20.04.2017