gpt4 book ai didi

javascript - 如何在 AngularJS 客户端和 Node.js 服务器之间重用代码

转载 作者:IT老高 更新时间:2023-10-28 22:03:14 25 4
gpt4 key购买 nike

在 AngularJS 客户端和 Node.js 服务器之间重用/共享代码的最佳实践是什么?

我实现了一个 AngularJS 应用程序。现在我需要实现一个 RESTful-server 为客户端提供数据。一些客户端 Angular 服务可以在服务器上重用,例如第三方 RESTful 客户端到 Facebook/Google/Twitter,它们密集使用 Angular 依赖注入(inject)并依赖于 $http$q 和许多其他服务。

理想情况下,由于我真的很喜欢 AngularJS 中包含的依赖注入(inject)框架,我会发现拥有一种基于 AngularJS 的服务器框架非常好。一个服务器框架,包括依赖注入(inject)框架和所有与 UI 无关的 Angular 服务,并添加所需的服务器端功能,如路由和身份验证。但不幸的是,我没有找到任何解决方案。 (请告诉我这样的框架是否存在!)

那么,为了至少在客户端和服务器之间启用代码重用,还有什么替代方案?特别是启用代码重用取决于 $http$q 和其他包含在 angular 框架和 angular-third-parties 中的 AngularJS 服务(如 angular -缓存)。

最佳答案

在非浏览器环境中使用 Angular

Ben Clinkinbeard 将 Angular 分布准备为 commonJS 模块 (HERE),可以在非浏览器环境中运行:

AngularJS compiled with jsdom and provided as a CommonJS module. Intended for testing AngularJS code without depending on a browser.


如果您想更加挑剔,您可能应该等待 angular 2.0

在客户端和服务器端之间共享代码

再一次……本·克林金比德。在 THIS TALK 他描述了如何在 Angular 项目中使用 browserify。这种方法的一个很酷的特性是您可以将您的函数/对象声明为不与 Angular 耦合的单独实体;因此它们也可以在不同的上下文中重复使用。

一个例子:

app.js

var app = angular.module('someModule',[]);
...
app.factory('someService', require('./some/path.js'));
...

./some/path.js

module.exports = function(dep1, dep2){
...
return {
...
}
}
module.exports.$inject['dep1', 'dep2']; // for minification;

关于javascript - 如何在 AngularJS 客户端和 Node.js 服务器之间重用代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22760920/

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