【问题标题】:linking mean stack server to ionic将平均堆栈服务器链接到离子
【发布时间】:2016-08-02 03:12:36
【问题描述】:

嘿,我对应用程序创建非常陌生,并且已经使用 ionic 大约一个月了,我想知道如何获取我的应用程序,以便我可以通过平均堆栈检索信息并将信息发送到 ionic。我遇到了很多关于如何创建平均堆栈的教程,但没有看到如何从 ionic 获取信息。

ex1.我希望我的登录(标准离子登录)查询用户名和密码。

ex2.我想将数据从我的 mongodb 发布到 ionic (已经知道如何做平均堆栈真的需要帮助来链接它)

我希望我说的很清楚,并感谢您的回复。

【问题讨论】:

  • MEAN 是一个服务器基础设施:你需要“一些东西”来回答你的应用请求;即后端服务器应用程序......你熟悉这个概念吗?
  • 喜欢角度?那是一个后端服务器应用程序吗?
  • 有你知道的例子吗?
  • Angular 在另一端:表示层(数据输入、验证、GUI 等); here's a tutorial 使用 mongodb、express、node(MEAN 堆栈中的“片段”)实现一个简单的后端应用程序。它可能不会涵盖您的实际设置,但至少可以作为您理解所涉及概念的开始。祝你好运!
  • 感谢您的 cmets!还有一个问题,您是否需要所有这些应用程序才能将 monogodb 连接到 ionic?

标签: node.js mongodb ionic-framework mean-stack


【解决方案1】:

允许最终客户端(例如 Web 应用程序)直接访问(读/写)服务器资源是一种不好的做法。

例如:如果你改变你的数据库软件(从 mongodb 到另一个东西)怎么办?此外,通过直接访问这些资源,您将数据的“密钥”提供给任何可以检查您的客户端代码的人(即几乎所有人!),并且没有什么能阻止他们对您的宝贵数据进行不必要的和未经验证的更改。您需要在服务器内部开发一个“层”,它可以访问您的数据并响应客户端请求:该层是一个后端服务器应用程序

有一些软件(库)可以帮助访问数据库:这些软件不是使用“低级数据库语言”,而是为您抽象和封装(包装)这些调用,并简化您的服务器应用程序的开发。在 MEAN 堆栈(nodejs、express、mongodb)中,您可以使用 monk 作为数据访问库。

您的“应用程序堆栈”(双关语!)的粗略图可能如下:

 ---------------------------------------------------------------------------------------
| SOFTWARE IN YOUR SERVER                  | CLIENT APP (WEB BROWSER, MOBILE APP, ETC.) |
| mongodb <-> monk <-> backend server app <-> Javascript, native code, etc.             |
 ---------------------------------------------------------------------------------------

您的客户端应用程序只能使用您的后端服务器应用程序公开的 api(接口)。例如:一个 Ionic 框架应用程序(即 Javascript 代码)可以验证和清理(饱和、转换为 JSON 等)用户数据并将其发送到服务器应用程序(通过对服务器 api 进行 Ajax 调用)。然后,服务器应用程序会响应一些结果数据或状态代码/消息,客户端可以依次处理并显示给最终用户。

cmets 中的tutorial 是一个很好的起点。这些是主要的代码:

  • 在服务器应用程序中(Node + Express):

    // Initialize database access
    var mongo = require('mongodb');
    var monk = require('monk');
    var db = monk('localhost:27017/nodetest2');
    
    . . .
    
    // define route (api endpoint) to get data (userlist collection in this case)
    router.get('/userlist', function(req, res) {
        var db = req.db;
        var collection = db.get('userlist');
        collection.find({},{},function(e,docs){
            res.json(docs);
        });
    });
    
  • 在客户端应用程序(javascript)中:调用后端 api 方法的函数

    // Fill table with data
    function populateTable() {
    
        // Empty content string
        var tableContent = '';
    
        // jQuery AJAX call for JSON
        $.getJSON( '/users/userlist', function( data ) {
    
            // process each item in returned JSON data
            $.each(data, function(){
                // process each data item...
            });
    
            // Inject the whole content string into our existing HTML table
            $('#userList table tbody').html(tableContent);
        });
    };
    

如您所见,客户端代码通过暴露的 api 端点 /users/userlist 调用(使用 Ajax)Web 服务器:此调用将数据返回给客户端。以同样的方式,您可以编写代码在您的服务器数据上创建其他CRUD operations;显然,一个更好的示例需要一个参数列表:要过滤的数据、要发布的数据等。但这是您的服务器应用程序设计和架构的一部分。

在这个例子中,技术恰好是全javascript:服务器应用程序使用nodejs + express(javascript),客户端代码(web或移动应用程序)也使用javascript;但堆栈可以是合适技术的任意组合:在后端,您可以使用任何服务器框架(php、python、asp.net、ruby on rails 等);这同样适用于客户端:任何可用于集成远程数据消费者的技术都可以用作客户端。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-28
    • 1970-01-01
    • 2016-10-02
    • 1970-01-01
    • 2018-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多