将Angular Services与NodeJS模块相结合

时间:2015-07-06 09:54:54

标签: javascript angularjs node.js mean-stack

假设我有一个用Javascript编写的库,可以在MEAN堆栈应用程序中使用。

我希望从NodeJS和Angular中使用我的库。 为了保持惯用,我希望库在节点内显示为模块,在Angular中显示为服务。

我能想到的唯一方法就是做:

var myLibrary = function(){
    var myLib = {};
    myLib.myFunc1 = function() {
        //Do some cool stuff
    };
    return myLib;        
};    

if (typeof module !== 'undefined') {
    module.exports = myLibrary();
} else{
    var app = angular.module('myApp.services', []);
    app.factory('myLibrary',myLibrary);
}

这样可行,但它至少有两个重要的限制:

  • 命名空间被变量" myLibrary"
  • 污染
  • 如果在库中我想使用其他节点模块或Angular服务那么我就不能

我想知道是否有人知道更好的解决方案,或者我是否应该放弃使用Angular服务并使用其中一个允许客户端节点模块功能的库。

1 个答案:

答案 0 :(得分:1)

对此进行了一些搜索似乎是最好的解决方案:

https://gist.github.com/sevcsik/9207267