使用 Node 和express.js 时,我在浏览器上收到“无法获取/”的消息。从控制台我得到: 无法加载资源:服务器响应状态为 404(未找到)。以下代码适用于服务器和浏览器。我真的需要一些帮助,因为我无法理解这段代码有什么问题。基本上,我正在 Udacity 攻读前端开发纳米学位,并且正在遵循练习。这个练习我没能成功。
Code for the server:
/* Empty JS object to act as endpoint for all routes */
projectData = {};
/* Express to run server and routes */
const express = require("express");
/* Start up an instance of app */
const app = express();
/* Dependencies */
const bodyParser = require("body-parser");
/* Middleware*/
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
const cors = require("cors");
app.use(cors());
/* Initialize the main project folder*/
app.use(express.static("website"));
const port = 3000;
/* Spin up the server*/
const server = app.listen(port, listening);
function listening() {
// console.log(server);
console.log(`running on localhost: ${port}`);
}
// GET route
app.get("/all", sendData);
function sendData(request, response) {
response.send(projectData);
}
// POST route
app.post("/add", callBack);
function callBack(req, res) {
res.send("POST received");
}
// POST an animal
const data = [];
app.post("/animal", addAnimal);
function addAnimal(req, res) {
data.push(req.body);
}
code for the browser
/* Function to POST data */
const postData = async (url = "", data = {}) => {
console.log(data);
const response = await fetch(url, {
method: "POST", // *GET, POST, PUT, DELETE, etc.
credentials: "same-origin", // include, *same-origin, omit
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(data), // body data type must match "Content-Type" header
});
try {
const newData = await response.json();
// console.log(newData);
return newData;
} catch (error) {
console.log("error", error);
// appropriately handle the error
}
};
//Call Function
postData("addAnimal", { animal: "lion" }); Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
当服务器接收到对其没有定义的处理程序 / 存在的路由的请求时,就会发生“无法获取 /”错误。
现在你有了这个:
// GET route app.get("/all", sendData); function sendData(request, response) { response.send(projectData); }