请求接口的代码:
import fetch from "node-fetch";fetch("https://api.openai-sb.com/v1/moderations", { method: "POST", headers: { Authorization: "Bearer ***********", "Content-Type": "application/json", }, body: JSON.stringify({ input: "树上有九只鸟,开枪打死一只,请问树上还剩几只鸟?" }),}).then(data => { console.log(data)});
import fetch from "node-fetch";fetch("https://api.openai-sb.com/v1/moderations", { method: "POST", headers: { Authorization: "Bearer ***********", "Content-Type": "application/json", }, body: JSON.stringify({ input: "树上有九只鸟,开枪打死一只,请问树上还剩几只鸟?" }),}).then(res => { const reader = res.body.getReader(); while (true) { const { done, value } = await reader.read(); if (done) { break; } const str = new TextDecoder().decode(value) console.log(str) }});
您当前的代码示例中,fetch
函数返回的是一个 Promise 对象,这个对象代表了一次网络请求。当这个请求完成时,它的 then
方法会被调用,并且传入一个处理函数。然而,您的处理函数中的 data
实际上是 Response 对象,而不是请求的结果。要获取请求的结果,您需要对 Response 对象调用 .json()
方法。
以下是修改后的代码:
import fetch from "node-fetch";fetch("https://api.openai-sb.com/v1/moderations", { method: "POST", headers: { Authorization: "Bearer ***********", "Content-Type": "application/json", }, body: JSON.stringify({ input: "树上有九只鸟,开枪打死一只,请问树上还剩几只鸟?" }),}).then(response => { return response.json(); // 将 Response 对象转换为 JSON}).then(data => { console.log(data); // 现在 data 是请求的 JSON 结果}).catch(error => { console.error('Error:', error); // 捕获并处理任何错误});
在这个修改后的代码中,我们首先调用 .json()
方法将 Response 对象转换为 JSON 格式的数据,然后我们在第二个 then
方法中处理这个数据。同时,我们也添加了一个 catch
方法来捕获并处理可能出现的任何错误。
注意:在实际使用时,请确保将 "Bearer ***********"
替换为您的实际 API 密钥,并确保该密钥具有足够的权限来访问您想要请求的接口。
问题内容: 我想像rails一样调试node.js。我尝试了几种方法: Webstorm调试–在这种情况下,每次更改代码后,我都需要单击“重新运行调试” 使用chrome远程调试器的Nodemon –在这种情况下,每次由nodemon重新加载代码后,我都需要重新连接到调试器 pry.js –在这里我需要输入“ eval(pry.it)” –并没有使其更简单的选项,例如“ debug”或pry()
LFMultipleLivenessManager 调用流程 LFMultipleLivenessManager 是对LFMultipleLivenessController 调用流程进一步的封装,方便用户直接调用 1 初始化 LFMultipleLivenessManager 输入token token LFMultipleLivenessManager *manager = [[LFMulti
1.初始化 创建LFLivenessSDK对象detector,具体传参请查看demo /** * 获取token * 强烈建议:appID不要放在客户端 */ private void requestToken() { } 设置参数,开启人脸识别 /** * 开始人脸识别 */ LFLivenessBu
LFMultipleLivenessManager 调用流程 LFMultipleLivenessManager 是对LFMultipleLivenessController 调用流程进一步的封装,方便用户直接调用 1 初始化 LFMultipleLivenessManager 输入token token LFMultipleLivenessManager *manager = [[LFMulti
1.初始化 创建LFLivenessSDK对象detector,具体传参请查看demo /** * 获取token * 强烈建议:appID不要放在客户端 */ private void requestToken() { } 设置参数,开启人脸识别 /** * 开始人脸识别 */ LFLivenessBu
问题内容: 我对Node.js流有疑问-特别是它们在概念上如何工作。 不缺少有关如何使用流的文档。但是我很难找到流在数据级别如何工作。 我对Web通信HTTP的有限理解是,来回发送完整的数据“包”。类似于个人订购公司目录,客户端向服务器发送GET(目录)请求,然后服务器以目录进行响应。浏览器不会收到目录的页面,而是会收到整本书。 节点流可能是多部分消息吗? 我喜欢REST模型- 尤其是它是无状态的