javascript - Nodejs - API 和应用程序位于同一服务器上的问题

标签 javascript node.js

我有一个服务器,它保存我的 API 和我的应用程序。

/ - 返回我的申请

/api - 每个请求都以该前缀 api 开头,例如/api/users 等等。

我的问题:当我不是直接通过 example.com 进入我的应用程序时,而是通过例如example.com/users 甚至一些随机单词,例如 example.com/stackOverflow 它会返回 API 响应!我的应用程序甚至无法启动,响应类似于 Cannot GET/stackOverflow

我猜这是因为它位于一台服务器上...有没有办法在 Node 中以某种方式修复它?

var app = expres();

app.get("/api/users", function (req, res) {
    getUsers(function (err, users) {
        if (err) {
            return res.status(500).send('Error');
        }

        return res.json(users);
    });
});

app.get("/api/user/:_id", function (req, res) {
    getUserById(req.params._id, function (err, user) {
        if (err) {
            return res.status(500).send('Error');
        }

        return res.json(user);
    });
});

最佳答案

您可以创建不同的子域,而不是使用仅更改 URI 的同一域。

然后通过 nginx/apache 上的反向代理配置,您可以将请求重定向到不同的服务器端口。这样,您的应用程序就可以在端口 80 上运行,NodeJS API 在端口 3000 上运行。

示例:

APP.domain.com redirects to localhost:80

API.domain.com redirects to localhost:3000

我希望我已经说清楚了。

您也可以使用您已经不需要在不同端口上运行它们的结构来做到这一点。 以下是一些有关如何在 nginx 上进行配置的文档:

https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/

关于javascript - Nodejs - API 和应用程序位于同一服务器上的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52106042/

相关文章:

javascript - 查看一组项目是否放置在数组的特定部分中的最佳方法是什么?

javascript - 嵌套查询 - 未定义错误

node.js - Winston 没有将日志写入文件

javascript - 我如何应对网络存储的大小限制?

javascript - 为没有在源中指定宽度和高度的图像获取图像尺寸

javascript - 如何在javascript中从数组中删除对象的属性?

javascript - 如何在 body 标签中插入 Before() 元素?

c++ - Node.js 插件的 node-gyp 重建的 g++ 构建错误

node.js - Node -mysql事务在唯一键违规后不会回滚

linux - Express.js 抛出错误 : ENOENT on linux server