我有一个带有 Node Express 和 Angular 的项目,似乎无论我做什么,我都无法获得最终产品来正确发出获取请求。 我有一个未完成的项目,其中请求有效。我真的看不出这两个项目之间有什么区别。
我的服务器文件:
const express = require('express');
const path = require('path');
const app = express();
const routes = require('./server/routes/routes');
app.use(express.static(path.join(__dirname, 'dist')));
app.use('/routes', routes);
app.get('*', (req, res)=>{
res.sendFile(path.join(__dirname, 'dist/index.html'))
});
const port = process.env.PORT || 4600;
app.listen(port, (req, res)=>{
console.log(`RUNNING on port ${port}`);
});
控制台日志也不会发生,因为请求导致错误
我的route.js文件:
const express = require('express');
const router = express.Router();
const axious = require('axios');
const PostAPI = 'https://jsonplaceholder.typicode.com';
router.get('/', (req, res) => {
axious.get(`${PostAPI}/posts`).then(posts => {
console.log(posts.data);
res.status(200).json(posts.data);
}).catch(error => {
res.status(500).send(error);
})
});
module.exports = router;
我在运行应用程序时没有收到任何错误或任何路径错误。 但我也再也没有得到 API 的结果了...... 我不确定这里出了什么问题。 我的整个项目的副本位于此 github 上,因此您可以看到该项目的 Angular 部分。
https://github.com/ana-acoss/Node-Express-and-Angular- 仅当我运行我的应用程序时我才会收到此消息
我一直在尝试找出问题所在,但仍然一无所获。
最佳答案
您的配置将响应处理程序映射到 /routes
,但是您正在请求 /posts
?我认为您只需将 routes
更改为 posts
,然后您应该调用后端电话。
app.use('/routes', routes);
app.get('*', (req, res)=>{
res.sendFile(path.join(__dirname, 'dist/index.html'))
});
关于node.js - 简单的 get API 无法使用 Angular 的 Node Express,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54421593/