私は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()メソッドを使用しました。それには別の解決策がありますか?