Javascript 服务器在8080上运行,但浏览器显示网页不可用
我遵循了本教程()的内容,当运行下一个到最后一个脚本(用于创建静态服务器)时,命令提示符会显示“服务器在端口8080上运行”,但当尝试在localhost:8080上访问它时,我只得到一个网页不可用错误 我在防火墙中制定了一条规则,允许访问8080 这可能是什么原因造成的?我应该尝试从其他地址访问该页面吗 当我尝试访问该页面时,我在cmd中收到以下错误消息:Javascript 服务器在8080上运行,但浏览器显示网页不可用,javascript,node.js,localhost,server,port,Javascript,Node.js,Localhost,Server,Port,我遵循了本教程()的内容,当运行下一个到最后一个脚本(用于创建静态服务器)时,命令提示符会显示“服务器在端口8080上运行”,但当尝试在localhost:8080上访问它时,我只得到一个网页不可用错误 我在防火墙中制定了一条规则,允许访问8080 这可能是什么原因造成的?我应该尝试从其他地址访问该页面吗 当我尝试访问该页面时,我在cmd中收到以下错误消息: C:\Users\id122302\Documents\test.js:11 存在(完整路径,函数(存在) ^ TypeError:un
C:\Users\id122302\Documents\test.js:11
存在(完整路径,函数(存在)
^
TypeError:undefined不是函数
在服务器上。(C:\Users\id122302\Documents\test.js:11:7)
在Server.emit上(events.js:110:17)
在HTTPParser.parserOnIncoming[作为onIncoming](_http_server.js:491:12)
在HTTPParser.parserOnHeadersComplete(_http_common.js:111:23)
在Socket.socketOnData(_http_server.js:343:22)
在Socket.emit(events.js:107:17)
在readableAddChunk(_stream_readable.js:163:16)
在Socket.Readable.push(_stream_Readable.js:126:10)
在TCP.onread(net.js:538:20)
您的服务器显示一个异常和一个行号=>去那个地方
正如@maniacnero所观察到的,API中不再有path.exists
这样的东西。有一个fs.exists
,但它已被弃用,以避免在节点的并发上下文中滥用
令人担忧的情况是:
- 您可以异步检查文件是否存在
- 同时,其他一些例程会删除/重命名它,或者服务器上的其他程序会删除/重命名它
- 您认为该文件存在,因此尝试打开它,并且自信地不处理错误情况
- 原子化做事
- 总是立刻处理失败
fs.exists
这样的东西。下面是您的代码的修改版本:
var sys = require("sys");
var http = require("http");
var path = require("path");
var url = require("url");
var fs = require("fs");
var port = 8080;
http.createServer(function(request,response) {
var my_path = url.parse(request.url).pathname;
var full_path = path.join(process.cwd(),my_path);
fs.readFile(full_path, function(err, file) {
if (err) {
response.writeHeader(404, {"Content-Type":"text/plain"});
response.write("404 Not Found\n");
response.end();
} else {
response.writeHeader(200);
response.write(file);
response.end();
}
});
}).listen(port);
console.log("Server Running on " + port);
我还删除了那些“二进制”东西,它们已经过时了,也没有在API中记录
使用示例代码是一种很好的学习方法,但前提是不要盲目地使用它。;(尤其是在一种基于快速变化的API的弱类型语言中,以及在这种语言中,大量教程都是由完全初学者编写的。这是您的朋友:谢谢您的帮助和建议,运行此代码只会给我404,所以现在的挑战是如何显示页面,感谢您的帮助将测试页面放在与脚本相同的目录中;假设您的测试页面名为“hi.txt”,包含“At laaaaaaast…:)”;然后调用localhost:8080/hi.txt