当我从Mongoose请求数据时,它向我显示一个错误并告诉我页面不存在,因为我知道我在Postman中测试了后端并且成功了。我还通过从外部链接获取数据来测试反应,并且成功了。我不知道是什么问题?!
我试着用这个代码
这是我的后台代码
const app = require("./app");
const mongoose = require("mongoose");
app.set("port", process.env.PORT || 3000);
const mongoURI = "mongodb://localhost:27017/get-now";
mongoose.connect(mongoURI, {
useNewUrlParser: true,
useUnifiedTopology: true
})
.then(() => console.log(`database connected`))
.catch(err => console.log(err));
const port = process.env.PORT || 3000;
app.listen(port, () => {console.log(`the server is ${port}`)});
routes.get("/alldata" , async (req, res) => {
try {
const foodDatas = await Data.find({})
res.send(foodDatas);
console.log(foodDatas)
} catch (error){
res.status(500).json({
Error: error
})
}
});
这是我的前端(react)代码
const fetchData = async () => {
axios.get('http://localhost:3000/alldata')
.then((res) => {
console.log(res.data)
}).catch (err => {
console.log(err)
})
}
useEffect(() => {
fetchData()
}, [])
所有这些都不工作它给我错误404页与数据:未定义
您是否在应用程序文件中配置了cors ?
如果没有,请安装cors。并添加:
const cors = require('cors')
也:
app.use(
cors({
origin: "*",
})
);
注意:跨域资源共享(Cross-Origin Resource Sharing, CORS)是一种基于http报头的机制,它允许服务器指示除自己以外的任何源(域、方案或端口),浏览器应该允许从这些源加载资源