javascript 용 aws-sdk를 사용하고 있습니다. 다시 독립 실행 형 프로그램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로 내려갑니다. 그래서 내가 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 ** .. –