私はNodeJSの新機能ですが、関数間で変数/オブジェクトを渡すというコンセプトも苦労しています。私が間違っていることについて助けてくれてありがとう。コールバック関数ではありませんNodeJS
、このコードを検討してください:
着信要求:
{
sender: '32165498732165845',
text: 'shopping',
originalRequest:
{
sender: { id: '32165498732165845' },
recipient: { id: '87971441647898' },
timestamp: 1488196261509,
message: { mid: 'mid.1488196261509:c7ccb7f608', seq: 36372, text: 'shopping' }
},
type: 'facebook'
}
抽出関連する変数:
var userId = request.sender;
var listName = request.text;
bot.js:
var listOps = require('./listops/test.js');
listOps.setActive(function (userId, listName, callback) {
console.log ('Here I expect a callback!');
return callback; // This will send the message back to user.
});
listops/test.js:
exports.setActive = function(userId, listName, callback) {
var message = "User number " + userId + " asks to create a list with name " + listName + ".";
console.log(userId);
console.log(listName);
callback (message);
}
今私の問題は、listOps.js
で両方のコンソールログの結果は、私が期待した値ではないということです、それは[Function]
とundefined
を言います。したがって、これがエラーメッセージ[TypeError: callback is not a function]
の根本的な原因であると思われます。
私はラムダでClaudia.jsを使用しています。
以下のようにこの関数を呼び出す必要が最初http://stackoverflow.com/a/19739852/6048928 http://stackoverflow.com/a/19756960/6048928 – RaR
ます'function(userId、listName、callback)'としてまだ 'setActive'を定義しました。あなたは最初の引数として無名関数を渡しています。 –
そうですね? 'listOps.setActive(userId、listName、callback); if(コールバック){ console.log( 'ここで私はコールバックが必要です!'); リターンコールバック。 }; ' –