Javascript 为什么我不能访问node.js基本公共API?

Javascript 为什么我不能访问node.js基本公共API?,javascript,node.js,Javascript,Node.js,每当我尝试访问它时,它根本不加载,只是挂起。我也遇到过类似的问题,没有加载任何子页面。我不确定原因是什么。我通过移动热点连接,但我不使用代理连接到互联网 我尝试了不同的端口,结果相同 const http = require('http'); const server = http.createServer((req, res) => { if (req.url === '/') { res.write('Hello World'); res.en

每当我尝试访问它时,它根本不加载,只是挂起。我也遇到过类似的问题,没有加载任何子页面。我不确定原因是什么。我通过移动热点连接,但我不使用代理连接到互联网

我尝试了不同的端口,结果相同

const http = require('http');

const server = http.createServer((req, res) => {
    if (req.url === '/') {
        res.write('Hello World');
        res.end();
    }

    if (req.url === '/api/courses') {
        res.write(JSON.stringify([1, 2, 3]));
        res.end();
    }
});

server.listen(3000);

console.log('Listening on port 3000...');

预期结果是显示数组
[1,2,3]
。实际结果是页面在没有加载的情况下挂起。

因为您没有返回有效的JSON对象

res.write(JSON.stringify([1,2,3])

试试这样的


res.write(JSON.stringify({“result”:[1,2,3]))

无更改,在我的电脑中工作正常,请在匿名窗口或更改端口中尝试一次

const http = require("http");

const server = http.createServer((req, res) => {
  if (req.url === "/") {
    res.write("Hello World");
    res.end();
  }

  if (req.url === "/api/courses") {
    res.write(JSON.stringify([1, 2, 3]));
    res.end();
  }
});

server.listen(8080);

console.log("Listening on port 8080...")

检查链接-

我发现我的问题的答案是不要将第二个if req.url设置为strict equals/api/courses。有人解释了为什么这不起作用吗?你确定这是因为
==
在你的例子中,可能是测试时你的URL输入错误。您应该添加一个回退案例来调试问题。类似于:
if(req.url==='/'){…}else if(req.url=='/api/courses'){…}else{res.write(JSON.stringify({url:req.url}));res.end();}
为什么需要以
{“result:[1,2,3]}的形式返回数据<代码>[1,2,3]
已经是有效的JSON。你为什么要做另一个答案的精确拷贝(包括打字错误)?