【问题标题】:Connection closed due to error Error: Unsupported protocol "undefined"连接因错误而关闭错误:不支持的协议“未定义”
【发布时间】:2021-03-12 13:00:38
【问题描述】:

大家好,当我尝试运行我的节点 js 文件时,我是 nodejs 的新手,然后我收到一个错误,例如由于错误而关闭连接错误:不支持的协议“未定义”不知道我错在哪里,请修复我的错误

https://ibb.co/31J6xWS

index.js

const http = require("http");
const fs = require("fs");
var requests = require("requests");



const homeFile = fs.readFile("home.html", "utf-8",(err)=>{
    console.log("Sucessfully");
});

const server = http.createServer((req, res) => {
    if (req.url == "/") {
        requests(
            "{API}",
            )
            .on("data", (chunk) =>{
                console.log(chunk);
            })
            .on("end", (err) => {
                if (err)
                    return console.log("coneection closed due to error",err);

                console.log("end");
            });
    }
})

server.listen(8000,"127.0.0.1")

【问题讨论】:

  • 尽量避免截图。相反,将错误文本复制粘贴到您的问题中。
  • 什么是"{API}"

标签: node.js api http


【解决方案1】:

您是否尝试在第 13 行使用模板文字...“{API}”部分。如果是这样,它应该${API} 带有反引号。你需要从你拥有它的文件中导入它。Node.js 的初学者也是如此,我使用过类似的东西。希望能帮助到你。你见过https://www.npmjs.com/package/request吗?可能会对你有所帮助。

【讨论】:

  • 我知道兄弟 api 应该是 ${API}
  • 也可以是API,不需要使用模板字面量。 @user13427179,您是否使用更新的 API 变量检查了应用程序?错误来自requests 库,所以看来这就是原因。
  • 啊,可能是@Zsolt Meszaros,不需要模板文字,只是简单地调用变量,它只是没有被定义而已
【解决方案2】:

您在粘贴 API 密钥时出错。检查您的 API 密钥,它不会像 URL。

http:// 开头缺失。

在 API 密钥的开头添加 http://

【讨论】:

    【解决方案3】:

    构建服务器的更好和更简单的方法是使用 Express.js 库,您可以使用以下命令下载它:

    npm i express
    

    更多信息:https://www.npmjs.com/package/express

    之后,您可以使用以下代码非常轻松地构建服务器:

    // npm install express
    const express = require('express');
    const app = express();
    
    app.get('/', (req, res)=> {
      res.send('Hello World');
    }) 
    
    app.listen(3000,()=>{
     console.log("starting...");
    });
    

    下面的代码是创建一个监听 localhost 端口 3000 的服务器并打印一条消息 hello world

    【讨论】:

    • 我知道如何使用 express js 创建服务器,但我在这里尝试学习 nodejs
    • node.js 中的内置模块 http 有一些 express.js 修复的缺点,因此学习它没有意义,使用 express.js 被视为 node.js 学习跨度>
    【解决方案4】:

    我也遇到了同样的问题。这是解决方案。将 {API} 替换为您的 API 密钥。

    requests("replace this with your API url and API key")
    

    【讨论】:

      猜你喜欢
      • 2021-05-04
      • 1970-01-01
      • 1970-01-01
      • 2020-06-04
      • 2013-02-04
      • 2018-12-02
      • 1970-01-01
      • 1970-01-01
      • 2015-10-02
      相关资源
      最近更新 更多