私はaws-sdkをjavascript用に使用しています。スタンドアロンプログラムでaws-sdk nodejsプログラムをクラッシュする
//program.js
const AWS = require('aws-sdk');
const firehose = new AWS.Firehose({
accessKeyId: "XXX",
secretAccessKey: "YY"
});
const params = {
DeliveryStreamName: 'demo1',
Record: {
Data: new Buffer("Hello World")
}
};
firehose.putRecord(params, function (err, data){
if (err) {
console.log(err);
return;
}
console.log(data); // successful response
});
を使用した場合
以下のコードは再度、上記のコードは、スタンドアローンのファイルとして正常に動作し正常に動作します。データがFirehoseにプッシュされ、さらにRedshiftに移動します。私は
node program.js
を実行した場合 は、私は赤方偏移に私のデータを見ることができています。わーい!!
=============================
はしかし、私が本当に達成したいことにデータをプッシュすることです特定のルートが私の明示的なアプリケーションでヒットすると、Firehose。
`` `
:だから私は、上記のようにまったく同じコードを取り、私のルートでそれを固執// router.js
const AWS = require('aws-sdk');
const firehose = new AWS.Firehose({
accessKeyId: "XXX",
secretAccessKey: "YY"
});
router
.get('/v1/locations/:id?', (req, res) => {
const params = {
DeliveryStreamName: 'demo1',
Record: {
Data: new Buffer("Hello World")
}
};
firehose.putRecord(params, function (err, data){
if (err) {
console.log(err);
return;
}
console.log(data);
});
// do the work that needs to be done for this route and send a response
res.send("some data");
});
firehose.putRecordが実行された分は...それは次のエラーで私のプログラムがクラッシュ
TypeError: doneCallback.cal is not a function
at Request.callListeners (/api-project/node_modules/aws-sdk/lib/sequential_executor.js:115:18)
at callNextListener (/api-project/node_modules/aws-sdk/lib/sequential_executor.js:95:12)
at /api-project/node_modules/aws-sdk/lib/event_listeners.js:74:9
at finish (/api-project/node_modules/aws-sdk/lib/config.js:315:7)
at /api-project/node_modules/aws-sdk/lib/config.js:333:9
at Credentials.get (/api-project/node_modules/aws-sdk/lib/credentials.js:126:7)
at getAsyncCredentials (/api-project/node_modules/aws-sdk/lib/config.js:327:24)
at Config.getCredentials (/api-project/node_modules/aws-sdk/lib/config.js:347:9)
at Request.VALIDATE_CREDENTIALS (/api-project/node_modules/aws-sdk/lib/event_listeners.js:69:26)
at Request.callListeners (/api-project/node_modules/aws-sdk/lib/sequential_executor.js:101:18)
このコードが私の特急プログラムをクラッシュさせる理由を理解できません。これはaws-sdkライブラリのバグですか、何か間違っていますか?
最後に問題が分かりました。 aws-sdkは正しくインストールされていませんでした。行115のファイルsequential_executor.jsにあります。** doneCallback.call **という文がありますが、私のファイルでは、この文は** doneCallback.cal ** .. –