私は、さまざまな RESTful Web サービスとのさまざまなやり取りをカプセル化する多数のモデルを含む、純粋にフロントエンドの JavaScript プロジェクトを持っています。私の目標は、これらのモデルを独自の npm モジュールに取り込み、作成中の新しいノード アプリでサーバー側で使用できるようにすることです。
モデルは XMLHttpRequest オブジェクトを使用しますが、これは明らかにサーバーでは未定義です。クライアント用にビルドしようとすると、browserify がエラーをスローするため、モデルで require('http') を実行することはできません。
サーバーとクライアントの両方で機能する HTTP リクエストを処理するにはどうすればよいですか? 私が欲しいのは次のようなものです:
var ajax = {
get: function (url, opts) {
if (typeof XMLHttpRequest === 'undefined') {
// is node app
var http = require('http');
...
} else {
// is browser app
var xhr = new XMLHttpRequest();
...
}
},
post: ...
};