0

バックエンドへの呼び出しを呼び出して応答を返す簡単なプログラムを試しています。ここに私のnode.jsコードがあります:

'use strict';

var util = require('util');
var http = require('http');
var request = require('request');
var stream = require('stream');


module.exports = {
 summary:summary
}

function summary(request, response) {
 var id = request.swagger.params.id.value;
 var url = "http://localhost:8080/test-org/myApp/summaries?q='id'";
 console.log('Executing request: '+url);
 request.get(url).pipe(response);
 };

ただし、次のエラーが表示されます。

curl http://localhost:10010/v1/customers/1123/summary
Executing request: http://localhost:8080/test-org/myApp/summaries?q='
id'
TypeError: Cannot call method 'pipe' of undefined
    at summary (C:\Apigee127\API-116\api\controllers\summary.js:17:19)
    at swaggerRouter (C:\Apigee127\API-116\node_modules\a127-magic\node_modules\
swagger-tools\middleware\2.0\swagger-router.js:114:18)
    at C:\Apigee127\API-116\node_modules\a127-magic\lib\middleware.js:82:9
    ....

ダウンロードする必要がある、不足している npm パッケージはありますか?

-S

4

2 に答える 2

3

あなたはスコーピングを破っています。関数はかかりますrequestが、ロードもしvar request = require('request')ました。

次のように変更します。

   var request = require('request');

   function summary(req, res) {
      request.get(url).pipe(res);
   }
于 2014-12-02T09:09:33.127 に答える
0

TypeError: Cannot call method 'pipe' of undefinedrequest.get(url)を返すことを意味しますundefined。はい、オブジェクトに対して関数を呼び出すことはできませんundefined

では、なぜrequest.getundefined になるのでしょうか?

デバッグを含めるようにコードを変更できますか?

  request.get(url)
  .on('error', function(err) {
    console.log(err)
  })
  .pipe(response);

ダウンロードする必要がある、不足している npm パッケージはありますか?

https://www.npmjs.org/package/requestには 16 の依存関係がリストされていますが、それらは自動ダウンロードされるはずでした。

于 2014-12-02T09:00:22.017 に答える