我是Node.js的新手,並且遇到函數問題。如果我把他放在同一個文件中,這個函數可以正常工作。但是如果我從另一個文件調用它,它不起作用。當我使用調試器時,我發現我可以調用該函數,但是當我使用該參數時,它一直說ReferenceError:值未定義。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;
只是因爲它口口聲聲說,我用同一個對象的屬性太documentDBConfig.feedsId
。但它仍然說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 feeds r where r.id =' + feedId.toString()
造成的。如果我把它寫硬編碼forexample 'SELECT * FROM rss r where r.id = "5"'
它工作正常。我知道documentdb只接受一個id值的字符串,因此我使用toString()方法。有沒有其他解決方案?