对于我的作业问题,我需要检查某个文件中是否存在某个文件 目录“ public”,然后通过“打开” 浏览器中的本地主机。我想使用一个函数来检查文件是否 目录中存在,然后如果为true,则将文件路径发送到另一个将打开文件的函数。这些都在我的server.js文件中,要打开的HTML文件以及该HTML文件的CSS和JS都在我的公共目录中。
这是使用node.js。我需要在控制台中运行node server.js,然后在浏览器中转到我的本地主机,并查看显示的具有样式和功能的网页。我尝试使用fs.access和fs.existsSync。不允许在此作业上使用Express。
var http = require('http');
var fs = require('fs');
http.createServer(function(req, res) {
var filepath = 'public' + req.url;
if (req.url == '/index.html' || req.url == '/') {
fs.access(filepath);
}
}).listen(3000);
console.log("Server running on Port 3000...");
fs.access(filepath, (access) =>{
if (access) {
res.statusCode = 200;
sendFile(filepath, res);
}
else {
res.statusCode = 404;
sendFile('public/404.html', res);
}
});
function sendFile(path, res) {
fs.readFile(path, "utf8", function(data){
res.end(data);
});
}
我收到一条错误消息,指出未定义文件路径(当我在调用fs.access时在参数中使用它时。
答案 0 :(得分:0)
fs需要使用带有斜杠的路径才能工作,因此请尝试使用
,而不要使用var filepath = 'public' + req.url;
var filepath = '/public' + req.url;