gpt4 book ai didi

javascript - 在 angularjs 和 node.js 之间共享库的模式

转载 作者:数据小太阳 更新时间:2023-10-29 04:38:47 27 4
gpt4 key购买 nike

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

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

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

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

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

最佳答案

在许多支持多种环境的不同地方,您会看到将“服务”的整个返回值包装到从闭包传递给初始化函数的参数中。使用 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
}
}()))

如果需要,您仍然可以通过 Node 需要语法或 Angular 的依赖注入(inject)来拥有依赖关系,但是服务可能需要修改,因为它从一个项目移动到另一个项目。

关于javascript - 在 angularjs 和 node.js 之间共享库的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20296105/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com