如何通过Postman将JSON发送到NodeJS Express Server?

时间:2016-02-26 12:49:42

标签: javascript json node.js express body-parser

我正在尝试通过Chrome应用程序发送一个JSON对象' Postman'。

如果我将标题设置为'Content-Type: text/plain',那么另一侧的输出是一个空对象:

{}

如果我将标题设置为Content-Type: application/json,我会收到以下回复...

  

'错误:json'无效。

密钥设置为ingredients,值设置为:

{ ["name" : "num1", "quantity" : "5"], ["name" : "num2", "quantity" : "2"], [ "name" : "num3", "quantity" : "8"]}

我在这里抓住它:

router.post('/add', jsonParser, function( req, res ) {

     if (!req.body) return res.sendStatus(400);    
     console.log( req.body );
});

2 个答案:

答案 0 :(得分:3)

您的JSON无效。重构为既能正确解析又能让您继续工作的东西。下面的示例应该可以正常工作,您的对象数组存储在ingredients ...

{
    "ingredients": [{
        "name": "num1",
        "quantity": "5"
    }, {
        "name": "num2",
        "quantity": "2"
    }, {
        "name": "num3",
        "quantity": "8"
    }]
}

您可以随意切换,只需确保解析即可。 JSONLint将是你的朋友。即使是没有命名标识符的普通数组也可以正常工作,我看的越多,就好像你只是向后调整了{}[]语法......

[{"name": "num1", "quantity": "5"}, {"name": "num2","quantity": "2"}, {"name": "num3","quantity": "8"}]

答案 1 :(得分:1)

  

首先,您需要根据模型设计数据。   使用http://jsoneditoronline.org/格式化Json,但没有语法错误

     

第1步: - 设置网址参数(如果有)

     

步骤2: - 设置标准Http标头

     

示例: - 1)。 Content-Type:application / json            2)。接受:application / json

     

然后根据您的要求使用http CRUD操作

     

您需要将数据发送到POST和PUT操作Get - 可以获取json   来自api

     

Post Ex: - 选择Post with API,您会看到3个选项form-data   x-www-form-urlencoded raw选择选项“raw”并粘贴你的Json内容

祝你好运!!