【问题标题】:Pattern for sharing a library between angularjs and node.js在 angularjs 和 node.js 之间共享库的模式
【发布时间】:2013-11-30 03:19:47
【问题描述】:

如何在 angularjs 和 node.js 之间共享一个库?

例如,一个 angularjs 服务通常是一段可重用的代码。我们以一个 URL 库为例(挑选并构造 URL)。

同样的库应该可以在 node.js 中使用。

我的限制是我想共享库代码,但我不想将自己限制在浏览器端的任何加载器库中。因此,如果我需要在浏览器中使用 RequireJS,我需要禁用任何加载部分,以便可以在其他地方进行控制。

那么我该如何分享代码呢?

【问题讨论】:

    标签: javascript node.js angularjs


    【解决方案1】:

    您将在许多支持多种环境的不同地方看到将“服务”的整个返回值包装到从闭包传递给初始化函数的参数中。使用 Angular 时要记住的一个问题是,服务可能不应该有其他依赖项来保持与环境无关(例如,如果这是一个简单的实用程序文件,则不太可能发生冲突)。

    例如考虑:

    (function( myService){
    
      if (typeof module !== 'undefined' && module.exports ) {
        module.exports = myService;
      } else if( angular ){
        angular.module('yourModule', [])
        .factory('serviceNameHere', function(){ return myService; });
      } else {
        window.myService = myService;
      }
    
    }(function(){
      function foo(){/* Do something */}
      function bar(){/* Do something else */}
    
      return {
        foo: foo,
        bar: bar
      }
    }()))
    

    如果需要,您仍然可以通过节点需要语法或 Angular 的依赖注入来拥有依赖项,但服务可能需要在从一个项目移动到另一个项目时进行修改。

    【讨论】:

      猜你喜欢
      • 2015-05-16
      • 1970-01-01
      • 2014-09-24
      • 1970-01-01
      • 2011-06-18
      • 2016-11-15
      • 1970-01-01
      • 2021-09-18
      • 1970-01-01
      相关资源
      最近更新 更多