2016-11-02 7 views
0

ノードスクリプトからAngular2の@angular/httpモジュールを再利用したい。私はnpmからノードv4.6.0、@angular/httpバージョン2.1.2を使用しています。ノードスクリプトで角度モジュールを再利用する方法

私はこれをやりたいので、モジュールを簡単に分離し、動作を確認して、それと一緒に遊ぶことができます(私は正しいことができるはずです - それがモジュールと呼ばれています) 。しかし、ノード内に固有のブラウザ依存関係を持たないAngularモジュールの再利用についての一般的なアドバイスを受けています。

myUrl = '...' 
http = require('@angular/http') 
Http = new http.Http() 
Http.get(myUrl).then(result => console.log(result)) 

となった:

TypeError: Cannot read property 'merge' of undefined at mergeOptions (/home/sam/node_modules/@angular/http/bundles/http.umd.js:1578:30) at Http.get (/home/sam/node_modules/@angular/http/bundles/http.umd.js:1672:45) at repl:1:6 at REPLServer.defaultEval (repl.js:262:27) at bound (domain.js:287:14) at REPLServer.runBound [as eval] (domain.js:300:12) at REPLServer. (repl.js:431:12) at emitOne (events.js:82:20) at REPLServer.emit (events.js:169:7) at REPLServer.Interface._onLine (readline.js:212:10)

だから、それが行われている

は私が探していたWebアプリケーションは、私はこれを試してみましたモジュールを使用する方法をオフに行きますか?それはできますか?どのようにHttpの一般的な特定のケースでそれについて行くか?

+0

どのように動作すると思いますか? Httpはブラウザ固有のXHRを使用します。あなたはAngular UniversalのHttpを理論的に使うことができますが、なぜですか? – estus

+0

まあ、それは私が求めていることです..どのように動作させる。 – spinkus

+0

私はなぜそれをしたいのか尋ねないでください。実際には関係ありません。 – spinkus

答えて

1

NG2(Angular2)についてもっと学んだら、一度それを学ぶと明らかになったことが分かりました。つまり、NgModulesは単に「モジュール」という用語のような単純なコンテナではありません。彼らは非常に具体的な責任を負い、NG2コアに緊密に結合されています。したがって、ノードにインポートするだけでは意味がありません。あなたはNG2の何かについて何かをするにはbootstrapped NG2コアモジュールが必要です。 HttpModuleによって提供される注射可能なサービスであるHttpへのアクセスは、注射システムのために、やはり複雑である。

NG2のカルマテストフレームワークとユーティリティを使用して、NG2のHttpサービスにやや隔離されたアクセスを得ることができました。テスト設定全体は厄介に複雑ですが、すべてQuickStartアプリケーションで実行されます(テストセットアップでは、テストを実行できるサーバー環境でブートストラップされたNgModuleが提供されます)。私は戻ってクイックスタートアプリを剥奪し、それがその後、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')) 
    }); 
}); 

サーバーのバッキングをどこからどんなこれまでに..

関連する問題