Кажется, вы новичок в Node, Nevermind, вы сделали несколько ошибок. Эта строка var post_response = post_req.write(_requestData)
не даст вам конечного результата, она возвращает true
, если запись прошла успешно. Вы можете изменить функцию следующим образом:
var http = require('https');
exports.handler = function(event, context) {
const _requestData = JSON.stringify('{"Name":"AWS Lambda"}');
console.log(event + ' ____event ' + _requestData + ' ______requestData');
const _options = {
host: "login.salesforce.com",
path: "/services/data/v20.0/sobjects/Case/",
method: 'POST',
port: 80,
headers: {
'grant_type': 'authorization_code',
'client_id': 'xxxxxx',
'client_secret': 'xxxxxxx',
'Content-Type': 'application/json',
'Content-Length': Buffer.byteLength(JSON.stringify(_requestData))
}
};
var post_req = http.request(_options, function(res) {
let post_response;
let chunks = []
res.setEncoding('utf8');
res.on('data', function(chunk) {
console.log('Response Chunk: ' + chunk);
chunks.push(chunk)
});
res.on('end', function() {
post_response = JSON.parse(Buffer.concate(chunks).toString())
// once request done send lambda response
context.succeed("done");
})
});
post_req.end();
pos_req.on('error', function(err) {
context.succeed("failed");
})
}
Если вы новичок в Node, я бы порекомендовализучение асинхронного программирования, потоковой передачи, обратных вызовов, обещаний и, конечно, асинхронного ожидания.