我使用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/');
});
我的文件当前的结构如下:
答案 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
。