Node.js的内部服务器错误

我有以下代码来使用node.js服务静态/ college.html中的网页,但它打错误,并显示在浏览器“内部服务器错误:无法读取文件”,这是行代码打印testing。

任何build议和如何解决这个问题? 谢谢

// Require the functionality we need to use: var http = require('http'), url = require('url'), path = require('path'), mime = require('mime'), path = require('path'), fs = require('fs'); // Make a simple fileserver for all of our static content. // Everything underneath <STATIC DIRECTORY NAME> will be served. var app = http.createServer(function(req, resp){ var filename = path.join(__dirname, "static", url.parse(req.url).pathname); (fs.exists || path.exists)(filename, function(exists){ if (exists) { fs.readFile(filename, function(err, data){ if (err) { // File exists but is not readable (permissions issue?) resp.writeHead(500, { "Content-Type": "text/plain" }); resp.write("Internal server error: could not read file"); resp.end(); return; } // File exists and is readable var mimetype = mime.lookup(filename); resp.writeHead(200, { "Content-Type": mimetype }); resp.write(data); resp.end(); return; }); }else{ // File does not exist resp.writeHead(404, { "Content-Type": "text/plain" }); resp.write("Requested file not found: "+filename); resp.end(); return; } }); }); app.listen(3456); 

感谢迄今为止的build议。 我只是打印这行url.parse(req.url).pathname但它显示空。 那里有什么可能是错的?

检查文件名,确保它不是一个目录或null或权限问题。 添加一个代理来跟踪双向的HTTP参数。 并用幻影运行,并curl打网站。

添加unit testing

最有可能的权限问题。 尝试修复文件的权限。 或者以root身份运行节点

为什么不使用Express框架,它为您处理静态文件夹。

你也应该使用NginX来处理静态文件。