Express.js服务器突然无法正常工作-无法获取/

时间:2019-07-19 16:39:58

标签: javascript html express

我使用node.js的极其简单的快递服务器突然停止工作。它工作正常(现在仅在本地计算机上进行测试),然后尝试使用browserify(该方法不起作用,最终删除了它),当我返回站点时,出现“无法获取/错误”消息。

我尝试卸载browserify,重新安装,卸载并重新安装我正在使用的两个npm软件包,甚至删除我的所有文件夹并从头开始(只是将代码粘贴到几个文件中) )。无论我仍然遇到同样的错误,我也不知道为什么。如果我打开index.html,它仍然可以完美打开,而当我运行服务器(index.js)时,它不会引发任何错误,并且似乎正在按预期的方式监听。

当前服务器:

var path = require('path');
var express = require('express');
var app = express();
var dir = path.join(__dirname, 'public');

app.use(express.static(dir));

app.listen(3000, function () {
    console.log('Listening on http://localhost:3000/');
});

我的文件当前的结构如下:

  • 公共
    • 资产(只有一些图像)
    • node_modules
    • index.html
    • index.js
    • package-lock.json
    • styles.css

2 个答案:

答案 0 :(得分:2)

您的index.html文件应位于public文件夹中,然后它将起作用。目前,您已将静态路径设置为不包含任何文件的公用文件夹。

答案 1 :(得分:1)

由于服务器的路径为/public/index.js,因此path.join(__dirname, 'public')解析为/Users/.../your_directory/public/public。 Express无法找到这样的目录,因此它沿其管道进行。由于您未定义GET /路由,因此Express会引发错误。

我建议您从/public中删除服务器文件。

这是新目录树的外观:

my_directory
    node_modules
    public
        assets
        index.html
        styles.css
    server
        server.js (index.js in your case)

如此设置目录树后,可以更改以下内容:

var dir = path.join(__dirname, 'public');

// becomes

var dir = path.join(__dirname, '..', 'public');

// The '..' is used to move one directory level up.

然后,您应该在转到http://localhost:3000时看到index.html