在多页实时,nodejs,express,application

时间:2016-11-05 10:03:20

标签: javascript node.js express single-page-application

我开始开发一个新的NodeJS(使用Express)Web / CRUD / REST多页面应用程序,我想以最好的方式开始。

Application对象将包含许多模块,例如:

  • 多个级别的用户管理,根据用户级别为他们可以执行的操作制定策略。
  • 插入,更新,检索数据库数据的简单表单。
  • 显示实时传感器的屏幕(已经考虑过使用Socket.io这样的库)。

基本应用程序(NodeJS服务器端API)也将被Android / iOS应用程序“调用”以从移动设备中获取/编辑数据。

将项目视为具有许多异步调用的多页面应用程序,我对视图管理有疑问,我想弄清楚以下哪种方法最方便:

1猜想(PURE API样式?):为每个请求写一条快速路由,它只返回一个JSON响应并组成视图客户端(最初用简单的jquery DOM编辑,稍后下载后(通过套接字或ajax调用)。使用React或Angular)。

服务器端

1调用:/ getFooView

router.get('/getFooView', function(req, res, next) {
    //code
    res.send(htmlview);
});

2调用:/ getFooData

router.get('/getFooView', function(req, res, next) {
    //code
    res.json({"foo": "bar"});
});

客户端

Javascript / JQuery客户端将组成“getFootView”然后它将显示给用户。

2猜想:为每个请求写一条快速路由,它返回已经由服务器端组成的视图(通常是一个小的html块,列表或类似物)(让我们假设是处理程序栏)。在这种情况下,每个控制器路由应根据请求者解释请求。

服务器端

router.get('/getFoo', function(req, res, next) {

    // pseudo code

    if(request == "ANDROID" || request == "iOS")
        res.json({data});

    else
    res.render('index', {
    // handlebars parsed view
        title: blockTitle,

        data: blockData

        sensors: sensorsData

    });
});

客户端: 用于追加接收块的JQuery代码。

哪种方法更适合我的目的?有什么优点和缺点?

抱歉我的英语不好。

1 个答案:

答案 0 :(得分:0)

如果我们谈论单页面应用程序,那么您就不应该发送视图。您可以将nginx用于客户端文件,包括css,html,js等。此外,nginx将缓存并代理客户端请求REST API。

所以我的回答是 PURE API + nginx for static files