Объединение угловых сервисов с модулями NodeJS

0

Предположим, у меня есть библиотека, написанная в Javascript, которая будет использоваться в приложении стека MEAN.

Я хочу использовать свою библиотеку как из NodeJS, так и внутри 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 и использовать одну из библиотек, которая позволяет функциональность модуля Node на стороне клиента.

Теги:
mean-stack

1 ответ

0

Проделав немного поиска, это выглядит как лучшее решение:

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню