0

というファイルで定義されている構成変数にアクセスする必要があります

-- を持っている test.js

 var aws = require('aws-sdk');
 exports.connect = function(){
    return aws;
 }

ここで、ブラウザーで OnClick イベントが発生したときにアクセスする必要があります。このスクリプトはありますが、require モジュールが機能しません。

clientScript.js

var aws = require('../scripts/test.js').connect();

function getValue() {
    aws.describe({},function(){...})
}

この aws 変数にアクセスするにはどうすればよいですか?

4

2 に答える 2

1

うまくいけば、私はあなたがここでやろうとしていることから遠く離れていません. 私の理解 (これとあなたの前の質問の間で一緒に石畳になっているのは、クリックすると外部 API からステータス情報を取得し、クライアントに表示されるものをブラウザーで使用したいということです。

(上記の仮定に基づいて)行うことをお勧めするのは、目的の機能を、Express サーバーへの HTTP リクエストによってトリガーされるものとして定義することです。Express サーバーは、機能を実行し、そのプロセスから必要なものをクライアントに送り返すことができます。 .

サーバーで定義します(Express変数が であると仮定しますapp

app.get('/request', someFunction);

someFunctionやりたいこと、それがリクエストとレスポンスにどのように関係するか、クライアントに何を送り返すかを定義します。Express は、関数がリクエストとレスポンスを引数として受け取ることを期待しますが、必ずしもそれらを使用する必要はありません:

someFunction(req,res) {
  //do whatever I'd like with aws or anything else
  res.send(foo); //where foo is whatever JSON or text or anything else I'd like the client to have to manipulate
}

/requestクライアントでは、そのエンドポイントにリクエストを行う onclick にバインドされた関数があります。この関数は、AJAX を使用するか、単に別のページを完全にレンダリングすることができます。

この種の組織では、サーバーがデータの取得と操作を処理する一方で、表示と動作もクライアントに任せます。このレイアウトは、クライアント側の require() ステートメントに関する問題も解決します (これはBrowserifyのようなものでは可能ですが、必要ではなく、コードをより混乱させる可能性があります)。

于 2013-07-24T22:46:04.407 に答える