【问题标题】:Using Angular $http service in node app在节点应用程序中使用 Angular $http 服务
【发布时间】:2016-05-25 20:59:27
【问题描述】:

我正在 Node.js 中开发一个需要发送多个 http 请求的脚本。我真的很熟悉Angular's $http service works 的方式。我喜欢 Promise 和整体语法的使用,我知道它的优缺点等等。

我可以在 Node.js 应用程序中以任何方式使用 Angular $http 服务吗?我希望这听起来不会太傻。

【问题讨论】:

    标签: angularjs node.js http


    【解决方案1】:

    对于像 Angular 中的承诺,您可以使用 q。实际上 angular 使用了 q 的一个子集。

    【讨论】:

    • 感谢您的洞察力。很高兴知道!
    【解决方案2】:

    冒着自我推销的风险,我写了一个NPM module,它提供了承诺的HTTP方法。

    【讨论】:

    • 这个模块看起来很像 Angular $http 模块正在做的事情。我可以看到你正在使用 Bluebird。很好谢谢!我去看看。
    • 好!我刚刚注意到您会遇到的一个区别是$http 在非 2xx 响应代码上返回错误,这将返回成功。不幸的是,这没有在文档中突出显示。
    【解决方案3】:

    这里有一个 NPM 项目,用于在服务器上的节点中运行 AngularJS:https://www.npmjs.com/package/angularjs-server

    话虽如此,您可能想看看 Bluebird 或者只是在 Node.js 中使用 ES6 Promise。由于 Angular 是一个客户端框架,它有很多你在服务器上不需要的东西。

    【讨论】:

      【解决方案4】:

      node 内置了对来自http module 的简单 http 请求的支持 - 但是,如果您想要更简单、更易于管理的东西,我会推荐 Restify client API

      var restify = require('restify');
      
      // Creates a JSON client
      var client = restify.createJsonClient({
        url: 'https://us-east-1.api.joyent.com'
      });
      
      
      client.basicAuth('$login', '$password');
      client.get('/my/machines', function(err, req, res, obj) {
        assert.ifError(err);
      
        console.log(JSON.stringify(obj, null, 2));
      });
      

      【讨论】:

        猜你喜欢
        • 2018-09-10
        • 2019-11-03
        • 2019-10-04
        • 1970-01-01
        • 1970-01-01
        • 2017-06-24
        • 1970-01-01
        • 1970-01-01
        • 2021-02-12
        相关资源
        最近更新 更多