NodeJS:从 Web 请求中读取 JSON 数组

NodeJS: Reading JSON array from a web request

本文关键字:读取 JSON 数组 请求 Web NodeJS      更新时间:2023-09-26
这可能是

一个n00b问题,但我正在尝试理解提供给我的nodeJS代码,该代码据说可以在生产中工作。这是一个我想使用的API,但由于无法理解请求中出现的JSON字符串而卡住。

var server = {};
server.create = function _create(req) {
    //req= JSON.parse(req);
    req.forEach(function (origReq) {
        console.log(origReq);
    });
}
var req = "[{'"id'":'"1'"},{'"id'":'"2'"}]";
server.create(req);

运行这个,我收到此错误,因为"req"未标识为 JS 对象/数组,并且 .forEach 在字符串上不可用,它是:

**

类型错误:未定义不是函数

**

可以理解的是,如果"注释"代码行未注释,则字符串将被解析为正确的JS数组并且它工作正常。

由于请求具有正确的内容类型"application/json",默认情况下它是否不被理解/解析?没有 parse 语句的代码如何可能工作(parse 语句是由我引入的,不存在于工作 API 的原始代码部分中)。可能节点模块(通常称为服务器模块)应该从传入的标头信息中处理这个问题?

如果我错过了一些基本的东西,我深表歉意,并感谢您的所有投入。

内容类型

"application/json"不会作为JavaScript对象进行检索。您正在检索纯文本(字符串)。就像"text/HTML""text/plain"内容类型一样。

调用JSON.parse(req)是关键,因为它会将此字符串解析为 JavaScript 对象。

编辑:

一些框架(如 Angular.js)会读取响应的内容类型,并将响应解析为 JavaScript 对象。但是,"请求"节点模块(您可能正在使用)不会为您解析响应。你必须自己做。