如何在节点脚本中重用Angular模块
How to reuse Angular modules in node scripts
我想从节点脚本中重用Angular2的@angular/http
模块。我使用的是节点v4.6.0,@angular/http
版本2.1.2,npm
从中获取。
在这种特定的情况下,我想这样做,这样我就可以很容易地隔离模块,确认它的行为,并处理它(我的意思是,我应该能够纠正-这就是为什么它被称为模块…(。但我也在寻求关于重用节点中没有固有浏览器依赖关系的Angular模块的一般建议。
我正在查看的web应用程序如何使用我尝试过的模块:
myUrl = '...'
http = require('@angular/http')
Http = new http.Http()
Http.get(myUrl).then(result => console.log(result))
得到:
TypeError:无法读取未定义的属性"merge"在mergeOptions(/home/sam/node_modules/@angular/http://bundles/http://umd.js:1578:30(位于Http.get(/home/sam/nod_module/@angular/Http://bundles/Http://umd.js:1672:45(回复:1:6位于REPLServer.defaultEval(repl.js:262:27(在绑定(domain.js:287:14(位于REPLServer.runBound〔as eval〕(domain.js:300:12(REPLServer。(回复js:431:12(在emitOne(events.js:82:20(位于REPLServer.emit(events.js:169:7(在REPLServer.Interface.onLine(readline.js:122:10(
那么,它完成了吗?能做到吗?如何在Http的特定情况下以及一般情况下进行?
在对NG2(Angular2(进行了更多的学习之后,我意识到一旦你学习了它,就会发现一件显而易见的事情:NgModules不仅仅是一个简单的容器,用于存放"模块"这一术语所暗示的东西。他们有非常具体的职责,并且与NG2核心紧密相连。所以,您不能仅仅将它们导入到节点中。你需要一个自举的NG2核心模块来处理NG2中的任何事情。由于注射系统的原因,访问作为由HttpModule
提供的可注射服务的Http
再次变得更加复杂。
使用NG2的因果报应测试框架和实用程序,我能够在某种程度上孤立地访问NG2的Http
服务。整个测试设置非常复杂,但它都是在QuickStart应用程序中为您完成的(测试设置本质上为您提供了一个引导的NgModule,在您可以运行测试的服务器环境中(。我剥离了quickstart应用程序,并添加了一个类似这样的简单单元测试,然后运行npm test
:
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { DebugElement } from '@angular/core';
import { HttpModule, Headers, Http, Response } from '@angular/http';
import { Observable } from 'rxjs';
import 'rxjs/add/operator/toPromise';
describe('Test frame for accessing Http!', function () {
let http: Http
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [ HttpModule ]
})
.compileComponents();
}));
beforeEach(() => {
http = TestBed.get(Http);
});
it('Test some HTTP', () => {
http.get('/base/foo.json').toPromise()
.then((r: Response) => console.warn(r))
.catch((e: any) => console.warn('An error occured'))
});
});
支持这一点的服务器是因果报应,所以你可能需要调整它的配置,告诉它从哪里提供任何服务。。
- 如何管理不同的 Angular 模块依赖关系
- Angular模块仅适用于内联javascript
- 正在注入Angular模块:未知提供程序
- 什么'将一些有用的js库封装到angular模块是一种很好的做法
- 访问在不同.js文件中定义的Angular模块
- 如何等待Angular模块加载
- Jasmine无法实例化Angular模块
- angular模块名称全局声明和重用
- 如何读取angular模块内部的json配置文件
- 用Jasmine单元测试测试Angular模块
- 直接从Angular模块访问常量
- Angular模块私人会员
- angular模块名中的点是什么意思?
- 如何在节点脚本中重用Angular模块
- 运行我的应用时,出现了Angular模块注入错误
- 如何组织angular模块依赖关系
- 如何在angular模块运行块中进行Jasmine测试
- Angular模块——每个应用或特性一个
- 如何将browserify——require文件传递给angular模块
- Angular模块之间能相互依赖吗?