Node.js Can';无法使用获取本地文件test.txthttp://localhost:8080/test.txt

Node.js Can';无法使用获取本地文件test.txthttp://localhost:8080/test.txt,node.js,express,server,localhost,Node.js,Express,Server,Localhost,我有一台运行在localhost:8080上的服务器,我的文件是这样排列的: /test server.js chatroom.html test.txt server.js: var express = require("express"); var app = express(); app.get("/", function(request, response) { response.sendFile(__dirname + "/chatroom.html

我有一台运行在
localhost:8080
上的服务器,我的文件是这样排列的:

/test
    server.js
    chatroom.html
    test.txt
server.js:

var express = require("express");
var app = express(); 
app.get("/", function(request, response) {
    response.sendFile(__dirname + "/chatroom.html");
});
app.listen(8080);
因此,当我进入
http://localhost:8080
我得到了服务
chatroom.html
很好

我遇到的问题:

但是当我进入
http://localhost:8080/chatroom.html
它显示“无法获取/chatroom.html”

同样,如果我转到
http://localhost:8080/test.txt
它显示“无法获取/chatroom.html”


我不明白这里出了什么问题,任何帮助都将不胜感激

您只为Express定义了一个路径,根路径“/”。如果您希望其他文件可用,还需要为它们调用app.get()


或者,您可以将这些静态资产放在一个目录中并为它们提供服务。

您只为Express定义了一个路径,根路径“/”。如果您希望其他文件可用,还需要为它们调用app.get()


或者,您可以将这些静态资产放在一个目录中并为它们提供服务。

好的,您能告诉我我是否理解这一点吗?显然,我一直在想,输入
http://localhost:8080/test.txt
进入浏览器类似于进入
文件:///test/test.txt
,但它只是相对于
localhost:8080
的路径。你是说实际上,输入
http://localhost:8080/test.txt
向服务器发送GET请求,但服务器不知道如何处理?对。当您使用Apache或Nginx之类的web服务器时,通常会将它们配置为在静态文件存在时提供服务,并且只有在请求的路径与文件不匹配时才接触到PHP或node.js之类的后端。但是通过连接到端口8080,您将直接访问node&Express,而Express只知道您告诉它的路径以及您注册的任何中间件。好的,您能告诉我是否理解这一点吗?显然,我一直在想,输入
http://localhost:8080/test.txt
进入浏览器类似于进入
文件:///test/test.txt
,但它只是相对于
localhost:8080
的路径。你是说实际上,输入
http://localhost:8080/test.txt
向服务器发送GET请求,但服务器不知道如何处理?对。当您使用Apache或Nginx之类的web服务器时,通常会将它们配置为在静态文件存在时提供服务,并且只有在请求的路径与文件不匹配时才接触到PHP或node.js之类的后端。但是通过连接到端口8080,您将直接访问node&Express,而Express只知道您告诉它的路径以及您注册的任何中间件。