node.js - 简单的 get API 无法使用 Angular 的 Node Express

标签 node.js angular express

我有一个带有 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}`);
});

控制台日志也不会发生,因为请求导致错误

enter image description here

我的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- 仅当我运行我的应用程序时我才会收到此消息 enter image description here

我一直在尝试找出问题所在,但仍然一无所获。

最佳答案

您的配置将响应处理程序映射到 /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/

相关文章:

angular - 用于 Angular 4 中输入的 UpperCasePipe

javascript将函数中变量的参数值传递给父函数中的另一个变量

url - Node.js url.parse 结果返回到字符串

node.js - FS Node 删除除名称匹配的所有文件

javascript - NodeJS - 将相对路径转换为绝对路径

node.js - 无法使用 Mongoose 连接到 MongoDB Atlas

javascript - 服务器未在 Node/Express 中运行

Node.js spawn() 调用在 Windows 上不起作用

angular - 为什么使用 OnPush 时,变化的数据会反射(reflect)在父组件中?

javascript - 将焦点状态设置为 field+angular 4