nodejs的request模块提交json数据的方法 作者:马育民 • 2017-09-05 23:05 • 阅读:10596 ###该模块的源代码地址: https://github.com/request/request **注意:** >代码以apicloud访问云端数据库为例子,所以有自定的heads信息,测试时,将这些无用信息去掉即可 ###安装request模块 ```shell node install request ``` ###加载request模块 ```javascript var request = require('request'); ``` ###方法一: 使用json,对应的值为要提交的json数据 ```JavaScript var r=request({ url: 'https://d.apicloud.com/mcm/api/user/login', method: "POST", headers: { "X-APICloud-AppId": APP_ID, "X-APICloud-AppKey": appKey }, json:{"username":"admin","password":"123456"}//提交的数据,并且返回的body也是json类型 }, function (error, response, body) { console.log('v:'+1); console.log("body:"+JSON.stringify(body)); console.log("userId:"+body.userId) if (!error && response.statusCode == 200) { console.log(body) // } //var bodyJson=JSON.parse(body); resp.json(body); }) ``` ###方法二 json属性为true,将json数据放到body中 ```JavaScript request({ url: 'https://d.apicloud.com/mcm/api/user/login', method: "POST", json:true,//发送数据和返回数据都是json类型 headers: { "X-APICloud-AppId": APP_ID, "X-APICloud-AppKey": appKey }, body: {"username":"admin","password":"123456"} }, function (error, response, body) { console.log('v:'+1); console.log("body:"+JSON.stringify(body)); console.log("userId:"+body.userId) if (!error && response.statusCode == 200) { console.log(body) // } //var bodyJson=JSON.parse(body); resp.json(body); }) ``` ###方法三 指定json属性为true,并调用form()方法提交json数据 ```JavaScript var r=request({ url: 'https://d.apicloud.com/mcm/api/user/login', method: "POST", json:true,//发送数据和返回数据都是json类型,此处必须设置为true headers: { "X-APICloud-AppId": APP_ID, "X-APICloud-AppKey": appKey }, }, function (error, response, body) { console.log('v:'+1); console.log("body:"+JSON.stringify(body)); console.log("userId:"+body.userId) if (!error && response.statusCode == 200) { console.log(body) // } //var bodyJson=JSON.parse(body); resp.json(body); }) r.form({"username":"admin","password":"123456"}) ``` 总结: 在option中的json属性,要么为true,要么是提交的json数据,返回的body,自动转换为json类型 原文出处:http://www.malaoshi.top/show_1C7byuw5wrj.html