Я пытаюсь создать API, используя AWS Lambda & node.js, который записывает запись в базу данных postgres.Затем я хочу вернуть ответ из базы данных обратно как ответ API.
Я могу заставить действие записи работать с моего ноутбука, но не как функцию Lambda.Кажется, он просто не выполняет функцию client.query.Я думаю, что это потому, что event.handler работает асинхронно, но я застрял на том, как сделать эту работу.
Во-вторых, я хочу передать res или err обратно из функции client.query, чтобы я мог вернутьэто как ответ API.Я не могу понять, как вывести их из функции запроса, даже если она работает локально.
Я думал, что объявление ответа в начале сделает его глобальным, но пока отладка не определена в точке, где я пытаюсьчтобы вернуть его.
const {Client} = require('pg');
var response
exports.handler = async (event) => {
const body = JSON.parse(event.body);
const query = {
text: "insert into testTwo (test) values($1)",
values: [body.text],
}
const client = new Client({
user: '',
host: '',
database: '',
password: '',
port: 5432,
});
client.connect();
client.query(query, (err,res) => {
console.log("Why doesn't this execute?");
if (err) {
response = {
statusCode: 400,
body: JSON.stringify(err)
};
} else {
response = {
statusCode: 200,
body: JSON.stringify(res)
};
}
client.end();
});
return response;
};