[英]Express.js server not working all of a sudden - Cannot GET /
我使用 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/');
});
我的文件目前的結構如下:
您的index.html
文件應該在public
文件夾中,然后它就會工作。 目前,您已將靜態路徑設置為不包含任何文件的公用文件夾。
由於您的服務器的路徑是/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
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.