static/college.html 에서 웹 페이지를 제공하기 위해 node.js를 사용하는 다음 코드가 있습니다.하지만 오류가 발생하여 브라우저에 "내부 서버 오류 : 파일을 읽을 수 없습니다" 테스트를 위해 코드에 인쇄 된 선입니다.node.js의 내부 서버 오류
제안 사항 및 해결 방법은 무엇인가요? 감사합니다.
// 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);
지금까지 의견을 보내 주셔서 감사합니다. 그냥이 줄을 인쇄합니다 url.parse(req.url).pathname
하지만 비어있는 것으로 표시됩니다. 거기에 무슨 문제가있을 수 있습니까?
'resp.write ("내부 서버 오류 : 파일을 읽을 수 없습니다");'위의'console.log ("파일을 읽을 수 없습니다"+ err)'를 추가 한 다음 콘솔을보고 더 자세한 정보를보십시오 뭐가 잘못 됐어. – adpalumbo
다음과 같습니다 : 오류 : EISDIR, 디렉토리에서의 잘못된 연산 – user2514364
디렉토리에서'readFile'을 호출하는 것처럼 보입니다. 내 생각에'url.parse (req.url) .pathname'는 예상했던 것, 아마도 빈 문자열을 반환하지 않는다는 것입니다. 'console.log'를 사용하여 빌드 한 직후'filename'을 출력 해보십시오. 그것이 당신이 기대하는 것임을 확인하십시오. – adpalumbo