SyntaxError:JSON 输入意外结束 - 这是为什么?

2024-03-05

这是我使用express和node.js编写的代码

    const express = require("express");
    const https = require("https");
    const app = express();
    
    app.get("/", function(req, res) {
    
        // Url to my api key
         const url = "https://api.spoonacular.com/recipes/random?apiKey=...&number=1";
    
         https.get(url, function(response) {
    
              response.on("data", function (data) {
                   console.log(JSON.parse(data));
                   // const theRecipe = JSON.parse(data);
                   console.log(data);
              });
    
         });
    
         res.send("The server is up and running");
    });
    
    app.listen(3000, function () {
         console.log("Server started at port 3000");
    });

当我在本地主机上刷新网页时,在控制台上出现以下错误:

引用 SyntaxError:JSON 输入意外结束 在 JSON.parse() 在传入消息。 (C:\Users\ArunBohra\Desktop\FoodRecipes\app.js:12:33) 引用

任何人都可以找到我的代码有什么问题吗?


The data当一个事件触发时chunk来自响应的数据已到达。您正在尝试解析第一个块,就好像它是完整的 JSON 文本一样。

你需要收集每个部分的碎片data事件,但要等到end事件在将它们连接到可以解析的完整 JSON 字符串之前触发。

有一个文档中获取和解析 JSON 的示例 https://nodejs.org/api/http.html#httpgeturl-options-callback.

您可能想看看像这样的模块axios https://www.npmjs.com/package/axios and node-fetch https://www.npmjs.com/package/node-fetch它会为您处理这个问题(以及 JSON 解析),同时提供基于现代 Promise 的 API。

如果您有足够新的 Node 版本,您可以使用原生获取 API https://nodejs.org/en/blog/announcements/v18-release-announce/#fetch-experimental.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SyntaxError:JSON 输入意外结束 - 这是为什么? 的相关文章

  • (IE 特定)如何确定输入的文本是否比输入元素的宽度长

    这是所有版本 IE 特有的问题 在所有其他浏览器中 当文本溢出时 输入元素的scrollWidth 大于输入元素的clientWidth 有没有办法确定IE中输入字段中的文本超出了输入元素宽度的键 下面是一个检查 clientWidth 与
  • 如何在 的每四个循环项之后添加

    我想在循环中的每第四个数字项之后退出循环 我想创建一个二十人的名单 在每一个tr应该是4个人 So I want to break from the loop after every 4th number of loop My one tr
  • Backbone Collection 和 Marionette CompositeView 中未定义的模型原型

    尝试从值列表填充集合时 我收到有关集合的错误model s prototype未定义 看着这个问题是关于类似问题的 https stackoverflow com q 16126195 1663942 我已经检查过模型确实已创建before
  • 将表单传递给 AngularJS 组件进行验证

    我正在将旧代码库迁移到 AngularJS 1 5 所推广的新组件架构 我在对较大的表单执行此操作时遇到了问题 传统上 我会附加表单验证 如下所示
  • 优化重叠矩形的绘制

    我有很多矩形 有些与其他矩形重叠 每个矩形都有一个绝对 z 顺序和一个colour 每个 矩形 实际上是粒子效果 网格或纹理的轴对齐边界框 并且可能是半透明的 但只要您不尝试剔除其他矩形后面的矩形 就更容易抽象地思考彩色矩形 所以我将在问题
  • 在多个 angular.js 应用程序之间共享单个服务

    我正在构建一个电子商务网站 基于 shopify 并且使用多个小型 angularjs 应用程序来处理诸如快速购物车 愿望清单 过滤产品和其他一些较小项目之类的事情 我最初使用了一个大型应用程序 具有路由和所有内容 但当我没有完整的 RES
  • 任何 JavaScript 代码都是有效的 TypeScript 代码吗?

    目前我已经开始学习TypeScript 从我研究过的文档来看TypeScript 我看到一些纯的样品JavaScript代码可以编译为TypeScript code 我的问题是 TypeScript 语言的设计方式是否使任何 JavaScr
  • 错误:grid.mongo.GridStore不是构造函数,使用mongoose、Grid-fs-stream和grid multer存储

    我收到以下提到的错误 基本配置如下 我已经将文件上传到服务器上 我想下载它们但出现这些错误 我向 api files delete fileId 调用了 POST 请求 它应该调用路由并将文件返回给浏览器 而不是使用网格相关模块获取错误 M
  • React:未捕获的引用错误:未定义需求

    我正在阅读 React 教程 http facebook github io react docs animation html http facebook github io react docs animation html 并且我无法
  • 为什么 Bootstrap 需要 jQuery? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我已经多次用谷歌搜索这个问题 但从未找到满意的答案 大多数答案似乎只是说 是的 Bootstrap 插件确实需要 jQuery https st
  • .then(functionReference) 和 .then(function(value){return functionReference(value)}) 之间有区别吗?

    给定一个用于处理的命名函数Promise value function handlePromise data do stuff with data return data a 传递命名函数handlePromise作为参考 then pro
  • 节省页面加载时间的提示[重复]

    这个问题在这里已经有答案了 我的问题 削减那些不必要的 kb 并使页面加载速度更快的最佳方法是什么 全部是什么优化实践 编码实践 在js php中 如果执行可以使您的页面更轻 为什么我问这个 我读了这篇关于 jquery js 与 jque
  • Angularjs $http 似乎不理解响应中的“Set-Cookie”

    我有一个带有 Passport 模块的 Nodejs Express REST api 用于身份验证 登录方法 GET 在标头中返回一个 cookie 当我从 Chrome 调用它时 它工作正常 我的 cookie 已在我的浏览器中设置 但
  • 使用 ngx-translate 时更改 URL

    当有人使用 ngx translate 单击所选语言时 我尝试更改 URL 我想我应该通过订阅语言更改事件然后修改当前的 url 以反映所选的语言来做到这一点 因为我是新手 所以我不确定是否需要服务来做到这一点 或者可能是另一种解决方法 我
  • Immutable.js 推入嵌套对象中的数组

    假设有一个对象 const object foo bar 1 2 3 我需要推动4 to object foo bar array 现在我正在这样做 const initialState Immutable fromJS object co
  • Boolean("false") 返回 true..还有其他选择吗?

    我正在使用 jquery 将 true 和 false 字符串写入 data html 属性 但是 当我将 false 写入其中一个属性 然后检查它是否为 false 时 它 会返回 true 我还在网上读到它应该这样做 这真的毫无意义 有
  • Mongodb 以不区分大小写的方式排序

    我在 Nodejs express 中以 mongodb 作为数据库的一个项目中非常努力地构建 当我使用 sort 获取所有数据时 它以错误的方式返回数据 那么有没有办法按照我的预期得到正确的格式 如下所示 如果我们在数据库中有三个记录 i
  • 通过排列四个给定数字找到最大可能时间 HH:MM

    我最近为了工作晋升而参加了编码测试 这是我真正遇到的任务之一 我想知道什么是最好的方法来做到这一点 我使用了大量的 if 和 if else 这不是最干净的解决方案 但完成了工作 我被问到的问题是 将 4 个数字格式化为 24 小时时间 0
  • 如何清除画布中图像上的矩形

    我需要清除画布中图像上绘制的矩形 而不损坏现有图像 我可以绘制小矩形点并将其清除 但问题是 当我清除矩形时 它在图像上仍保留为白色小斑点 有人可以告诉我如何清除图像上的矩形而不损坏现有图像 我使用了以下方法来清除矩形 但没有用 1 cont
  • 带有 'as' 属性的通用 React TypeScript 组件(能够渲染任何有效的 dom 节点)

    我在下面的示例中按预期工作 我的问题是 无论如何我可以重写它 这样我就不必传递通用的T和as支柱 理想情况下我想通过asprop 并让组件的 prop 接口使用它 这在 TypeScript 中可能吗 export type Props l

随机推荐

  • 不同端口上的 Route 53 记录集

    我是一名 ruby 开发者 刚刚开始学习一些 Node js 我正在运行一个实例AWS主持我的rails带有乘客 nginx 监听的应用程序port 80 现在我想举办一个node js同一实例 t1 micro 上的应用程序并将其监听端口
  • UIViewController 不自动旋转

    正如标题所说 我的 UIViewController 无论如何都不会旋转 当它加载时 shouldAutorotateToInterfaceOrientation 被调用 但之后就不会了 更新1 这是一个非常非常奇怪的问题 至少对于我来说
  • 如何屏蔽nginx日志中POST正文的敏感信息?

    为了方便分析我们保存 request body访问日志中的字段 但是 帖子正文中存在一些敏感信息 例如密码或信用卡号 会在日志中暴露 我们怎样才能掩盖这些信息呢 password 1234asdf gt password 如果我编写一个 n
  • 如果 A 列为空,隐藏 Google 电子表格中的行吗?

    如果 A 列为空 我试图隐藏行 我想将其应用于特定工作表 第 1 周 第 2 周 第 3 周 第 4 周和第 5 周 这是我迄今为止第一周的代码 function ConditionalHideRow var ss SpreadsheetA
  • VSCode 添加随机百分比

    每次我使用终端打印出字符串或任何类型的字符时 它都会自动在每行末尾打印一个 每当我尝试从 C 或 php 打印某些内容时 都会发生这种情况 但还没有尝试过其他语言 我认为这可能是 vscode 的问题 并且不知道它是如何出现的或如何修复它
  • 如何从未签名的存储库安装 debian 软件包

    尝试从未签名的存储库将 Debian 软件包安装到 Debian 9 apt get allow unauthenticated update Get 1 http files freeswitch org repo deb freeswi
  • 在 WPF 中显示多维数据

    在 WPF 中显示多维数据的最佳方式是什么 直到运行时我才会知道数据的大小 形状 理想情况下 我想使用数据绑定 但这不是严格的要求 我正在考虑某种网格 但我不知道如何动态绑定到数据并让它计算出行数和列数 请提供建议和示例 听起来好像您想要一
  • 隐藏样式、块样式和无样式之间的区别

    我试图找出风格之间的差异 hidden block none 我正在尝试这个例子 但不幸的是这不起作用 有人可以告诉我答案吗 div hr DIV 1 hr div 你真的很接近 两种不
  • 用于输入/V 模型的 Vue 过滤器

    所以我对 ES6 SPA Javascript 和 Vue JS 非常陌生 我主要使用 JQuery 所以我有一个全局过滤器 Vue filter formatDate function value if value return mome
  • 在 Backbone.js 中,如何让模型超类默认值充当子类的默认值?

    我有一个定义一些默认值的类和一个定义一些默认值的子类 但是 当我创建子类的实例时 它只查看本地默认值 不会将其默认值与父类的默认值合并 有没有什么简单的方法可以做到这一点 而无需显式地将本地默认值与父默认值合并initialize每个子类的
  • Javascript:类属性在拖动事件期间变得未定义

    我对 Javascript 中的类还很陌生 我已经被困了几天试图理解为什么我的属性在我的所有方法中都变得未定义 我试图复制this https www kirupa com html5 drag htm到一个类中 但不成功 因为每次调用方法
  • 在C中,如何使用X11获取屏幕内活动监视器的几何形状(x,y,宽度,高度)

    我所有的搜索都得到了关于如何使用 C 获取 X11 中活动屏幕的几何形状的答案 但该屏幕可能包含许多显示器 并且通常只有一个屏幕 除非有许多用户同时使用同一台计算机 关于获取屏幕几何形状的那些答案已经过时 因为它们没有考虑多个显示器 那么
  • 从 mysql 时间戳字段中选择不同的月份和年份,并在 php 中回显它们

    我的mysql表有一个createdOn列 其filedtype timestamp 的格式为2011 10 13 14 11 12 我需要的是显示与createdOn列不同的月份 年份 我已经搜索了堆栈溢出并能够使用以下代码回显几个月 s
  • Codeigniter上传路径无效

    下面的人给出了代码和文件夹结构 任何人都可以帮助我为什么会出现 上传路径似乎无效 错误 如何解决此错误 文件夹结构 Application System Upload 414208 代码点火器代码 config upload path up
  • 中传递多个变量' aria-label='使用 PHP 和 $_GET[''] 在 中传递多个变量'> 使用 PHP 和 $_GET[''] 在 中传递多个变量

    我正在使用 PHP 根据变量创建链接 目前我有这行代码 我已经使用过多次并且工作完美 echo a href value2 a 以上全部在一行 在接收页面我有 assignmentName GET assignName 它从 URL 中检索
  • C#.net 中具有不同间隔的多个计时器

    我想要输入不同间隔的不同计时器 例如 如果我输入 4 则 4 个计时器创建并在 4 个标签中显示时间 其中第一个计时器的时间在 1 秒内变化 第二个计时器的时间在 2 秒内变化 第三个计时器的时间在 3 秒内变化4tn 计时器的时间在 4
  • 在 Azure 应用服务中部署前端和后端应用程序的最佳方法是什么?

    我们正在分别使用 Reactjs 开发前端应用程序和使用 Nodejs 开发后端应用程序 但我不太熟悉 Azure 应用服务后端的部署工作方式 我已经成功部署了我们的前端 它现在已在应用程序服务 URL 中启动并运行 但我不确定如何处理后端
  • 在android帮助中翻转位图?

    我想为我的游戏节省内存 我想问你 因为我找不到任何东西 上次我在这里问问题时我得到了很好的答案 我可以在 Eclipse 中翻转位图 这样我就可以节省精灵的内存吗 我发现的所有教程都是关于旋转而不是翻转 翻转位图的教程仅适用于 open G
  • 通过 Websocket 传输视频

    我正在尝试构建可以从双方传输视频的移动应用程序 即视频通话之类的东西 我研究了 webrtc 但这还没有为移动本机应用程序做好准备 无论如何 webrtc 正在做的是允许浏览器直接捕获相机和音频而不需要插件等 但在本机移动应用程序中捕获相机
  • SyntaxError:JSON 输入意外结束 - 这是为什么?

    这是我使用express和node js编写的代码 const express require express const https require https const app express app get function req