在postman中发布objectId

时间:2015-10-24 06:55:14

标签: json node.js mongoose schema postman

我正在尝试使用邮递员将此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)

它是一个带有mongoose的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”视为非法字符。

2 个答案:

答案 0 :(得分:1)

你必须引用字符串:

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

答案 1 :(得分:0)

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

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