使用Node.js将RESTful服务与主网站体系结构分离

时间:2013-08-29 18:50:41

标签: node.js rest architecture client-server

我正在开始一个新项目,我希望对我的服务器架构的想法有所了解。这是设置:

  1. 许多设备(手机,平板电脑)都有一个客户端应用。这些都需要与服务器建立RESTful连接以获取数据。此服务器已存在,并且正在运行Node.js和Express以提供JSON。

  2. 我需要建立一个客户网站,需要访问与其他客户端设备相同的数据。用户将登录此网站,与他们的帐户进行交互等。此服务器可以运行Node.js,Apache或其他任何工作。

  3. 对我来说,保持RESTful服务器完全无状态并且真正只回答Web服务请求似乎是最有意义的。这意味着我需要使用单独的服务器(或无人机)来运行网站,并将此服务器视为RESTful服务器的另一个客户端。

    我是否过于复杂?仅从同一服务器提供JSON(用于设备)和HTML(用于浏览器)并将用户会话状态引入该服务器是否有意义?

2 个答案:

答案 0 :(得分:4)

开发客户网站作为自己的东西,让它像任何其他客户一样使用REST API。

将它作为快速应用程序开发并从主REST服务器use开发可能会很方便。

网站/ index.js:

var app = require('express')();
app.get('/', function(req, res) { res.send('<h1>Website</h1>'); });
module.exports = app;

然后在您的主REST服务器中:

...
app.use(require('../website'));
app.listen(...);

这使您几乎可以将网站视为不同的应用程序,但仍然可以从同一台服务器托管它。如果需要,以后可以很容易地将网站作为自己的服务器运行。

答案 1 :(得分:0)

我为这种情况创建了一个单独的项目。 如需参考,请按照

进行操作

https://github.com/rahpal/RestOnNode