Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Nodejs-API和应用程序在同一服务器上的问题_Javascript_Node.js - Fatal编程技术网

Javascript Nodejs-API和应用程序在同一服务器上的问题

Javascript Nodejs-API和应用程序在同一服务器上的问题,javascript,node.js,Javascript,Node.js,我有一个服务器,它保存我的API和应用程序 /-返回我的申请 /api-每个请求都以该词前的api开始,例如/api/用户等 我的问题:当我不是直接通过example.com进入我的应用程序,而是通过example.com/users,甚至是一些随机词,比如example.com/stackOverflow,它会返回API响应!!我的应用程序甚至没有启动,响应类似于无法获取/stackOverflow 我想这是因为它在一台服务器上。。。有没有办法在node中以某种方式修复它 var app =

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

/-返回我的申请

/api-每个请求都以该词前的api开始,例如/api/用户等

我的问题:当我不是直接通过example.com进入我的应用程序,而是通过example.com/users,甚至是一些随机词,比如example.com/stackOverflow,它会返回API响应!!我的应用程序甚至没有启动,响应类似于无法获取/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上运行,让NodeJSAPI在端口3000上运行

例如:

APP.domain.com重定向到localhost:80

API.domain.com重定向到localhost:3000

我希望我说清楚了

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


有没有其他方法代替这个ngnix?你也可以用Apache来做。Nginx类似于Apache。也许这只是你的路线配置!我们能拍一张吗@我编辑了我的帖子: