#node.js #debugging #visual-studio-code #visual-studio-debugging #vscode-debugger
#node.js #отладка #visual-studio-code #visual-studio-debugging #vscode-debugger
Вопрос:
Я создаю сервер узлов (без Express), и у меня проблема, которая появляется ТОЛЬКО во время отладки, и в противном случае работает нормально.
В принципе, он не может найти файл (index.html ) Я пытаюсь служить, и это дает мне:
"Sorry, check with the site admin for error: Error: ENOENT: no such file or directory, open './public/index.html' .."
Код (переключение маршрутизации, затем ответ запроса)
switch (filePath) {
case "./main.css":
filePath = "./public/main.css";
res.writeHead(200, { "Content-type": "text/css" });
break;
case "./main.js":
filePath = "./public/main.js";
res.writeHead(200, { "Content-type": "application/javascript" });
break;
case "./":
filePath = "./public/index.html"; //FILE TRYING TO SERVE <====
res.writeHead(200, { "Content-type": "text/html" });
}
fs.readFile(filePath, function (error, content) {
if (error) {
if (filePath == "./favicon.ico") {
res.writeHead(200, { "Content-Type": "image/x-icon" });
res.end();
console.log("favicon reqed");
return;
} else {
// BELOW IS THE ERROR MESSAGE <=========
res.end(
"Sorry, check with the site admin for error: " error " ..n"
);
console.log("file path " filePath);
// outputs: "file path ./public/index.html" as I expected
console.log("current dir " __dirname);
// outputs correct directory here.
}
} else {
res.end(content, "utf-8");
}
});
запустите конфигурацию отладчика.json
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"skipFiles": ["<node_internals>/**"],
"program": "${workspaceFolder}/...PATH/IS/CORRECT.../milestone2_app/app.js",
"console": "integratedTerminal"
}
Я озадачен, поскольку приложение работает нормально, если я просто запускаю> узел app.js без отладчика, так что я не думаю, что проблема в патчинге. Я запускаю vscode на macOS, если это имеет значение.
Спасибо за любые входные данные,