首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Claudia JS框架中的请求对象未正确解析

Claudia JS框架中的请求对象未正确解析
EN

Stack Overflow用户
提问于 2019-08-02 21:40:20
回答 1查看 187关注 0票数 1

我想构建一个应用程序接口作为一个无服务器的AWS Lambda函数,并使用ClaudiaJS作为框架。但是,在将JSON对象传递给POST路由时,我无法正确解析request.body的内容,因为它们的类型是"string“,而不是" object”。如果这是一个快速的node.js后端,我会直接使用bodyParser,但在这种情况下我不能。感谢您提供的任何帮助:)

我尝试了JSON.parse(req.body),但没有用。

这是POST路由的代码

代码语言:javascript
复制
var ApiBuilder = require('claudia-api-builder'),
api = new ApiBuilder();

module.exports = api;

api.post('/upload', (req, res) => {
  return req.body;           //I return the body for debugging purposes 
});

使用POSTMAN将JSON对象发布到服务时(content-type:application/json)

代码语言:javascript
复制
{
  "latitude": "52.514818",
  "longitude": "13.356101",
  "additionalData": "xyc"
}

它返回一个字符串,而不是一个对象。因此,我不能像这样解析它: req.body.latitude并获取纬度的值。

代码语言:javascript
复制
"----------------------------641080260577727375179249\r\nContent-Disposition: form-data; name=\"file\"; filename=\"Berlin.json\"\r\nContent-Type: application/json\r\n\r\n{\n  \"latitude\": \"52.514818\",\n  \"longitude\": \"13.356101\",\n  \"additionalData\": \"xyc\"\n}\n\r\n----------------------------641080260577727375179249--\r\n"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-06 07:42:36

您遇到的问题是,您正在发送API表单数据,并期望它的行为像JSON一样。

最简单的解决方案是在POST正文中发送实际的JSON,在这种情况下,您现有的代码将正常工作。

否则,您只需从现有字符串中获取JSON。

代码语言:javascript
复制
var ApiBuilder = require('claudia-api-builder'), api = new ApiBuilder();
module.exports = api;

api.post('/upload', (req, res) => {
  console.log(req.body);  // outputs the form-data as string
  var myString = req.body.substring(
    req.body.lastIndexOf("{"), 
    req.body.lastIndexOf("}")+1
  );
  var myJson = JSON.parse(myString);
  console.log(myJson) // outputs a valid JSON object
  return myObj;
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57327687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档