Javascript Express.js服务器突然不工作-无法获取/
我使用node.js的极其简单的express服务器突然停止工作。它工作得很好(目前只在我本地的机器上测试),然后我尝试使用browserify(它不工作,我最终删除了它),当我回到站点时,我收到了一个无法获取/错误 我尝试过卸载browserify,重新安装它,卸载并重新安装我正在使用的两个npm软件包,甚至删除我所有的文件夹,从头开始(只是在几个文件上粘贴代码)。不管怎样,我还是会犯同样的错误,我不知道为什么。如果我打开index.html,它仍然可以完美地打开,而当我运行我的服务器(index.js)时,它不会抛出任何错误,并且似乎正在按预期进行侦听 目前的服务器:Javascript Express.js服务器突然不工作-无法获取/,javascript,html,express,Javascript,Html,Express,我使用node.js的极其简单的express服务器突然停止工作。它工作得很好(目前只在我本地的机器上测试),然后我尝试使用browserify(它不工作,我最终删除了它),当我回到站点时,我收到了一个无法获取/错误 我尝试过卸载browserify,重新安装它,卸载并重新安装我正在使用的两个npm软件包,甚至删除我所有的文件夹,从头开始(只是在几个文件上粘贴代码)。不管怎样,我还是会犯同样的错误,我不知道为什么。如果我打开index.html,它仍然可以完美地打开,而当我运行我的服务器(ind
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/');
});
我的文件当前的结构如下:
- 公开的
- 资产(只有一些图像)
- 节点单元
- index.html
- index.js
- package-lock.json
- styles.css
index.html
文件应该位于公共文件夹中,然后它就可以工作了。目前,您已将静态路径设置为不包含任何文件的公用文件夹。由于您的服务器路径为/public/index.js
,path.join(u dirname,'public')
正在解析为/Users/../your\u directory/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.
然后,您应该能够在前往时看到index.html
。如果您没有提供index.html
,您应该将其移动到您的public
文件夹下,因为这是您设置静态路由的地方。很抱歉,这是一个格式错误,请立即修复它-还有其他想法吗?@khan抱歉,我不知道您的意思,它应该在哪里?如果不考虑您的Express app文件在您的目录中的位置,它在早期运行正常?与您的问题无关,但在您的公用
目录中不应该有节点_modules
。您不想提供对代码目录的公共访问。很抱歉,这是一个格式错误,它在公共文件夹中工作!非常感谢您的耐心和解释一些基本的最佳实践,我相信您会知道这是我第一次这样做