【发布时间】:2015-07-09 18:14:51
【问题描述】:
假设我有一个用 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 服务并使用允许客户端节点模块功能的库之一。
【问题讨论】:
标签: javascript angularjs node.js mean-stack