2017-03-11 13 views
0

私はNode.jsが新しく、関数に問題があります。この関数は、私が彼を同じファイルに入れるとうまく動作します。しかし、別のファイルから呼び出すと、うまくいきません。私はデバッガを使用すると、私は関数を呼び出すことができますが、私はパラメータを使用すると参照Error:Valueが定義されていないと言っ続けている。それは私があまりにもdocumentDBConfig.feedsId同じオブジェクトのプロパティを使用し、と言って続けるという理由だけでReferenceError:値が定義されていません

documentDBConfig.getById = function (feedId) { 
    return new Promise((resolve, reject) => { 
     client.queryDocuments(
      feedCollectionUrl,    
      'SELECT * FROM feeds r where r.id =' + feedId.toString() 
     ).toArray((err, results) => { 
      if (err) reject(err); 
      else { 
       if (typeof results[0] !== 'undefined' && results[0] !== null) { 
        documentDBConfig.feedsArray = results; 
       } 
       console.log(); 
       resolve(results); 
      } 
     }); 
    }); 
}; 

module.exports = documentDBConfig; 

。しかしそれはまだReferenceError: value is not definedと言っています。デバッガでは値を確認して問題なくdocumentDBConfig.feedsIdに割り当てますが、別のファイルには渡されません。値がなければ、この機能はうまく機能します。どうすれば修正できますか?

documentDBConfig.feedsId = req.params.id; 
console.log(documentDBConfig.feedsId); 
    documentDBConfig.getById(documentDBConfig.feedsId) 
     .then(() => res.json(documentDBConfig.feedsArray)); 

編集:私は、問題は、私はそれがハードコード書けば'SELECT * FROM rss r where r.id = "5"' forexampleそれは正常に動作し、クエリ'SELECT * FROM feeds r where r.id =' + feedId.toString()によって引き起こされることがわかりました。 documentdbはid値の文字列しか受け付けないことを知っているので、toString()メソッドを使用しました。それには別の解決策がありますか?

答えて

0

質問を変更して問題を解決しました。

'SELECT * FROM rss r where r.id =' + '"' + documentDBConfig.feedsId + '"' 

これで正常に動作します。

関連する問題