gpt4 book ai didi

mysql - 如何在node.js lambda aws中的httpget请求中获取mysql数据

转载 作者:行者123 更新时间:2023-11-29 15:18:18 25 4
gpt4 key购买 nike

pool.getConnection(function(err, connection) {

var yesterday = new Date(Date.now() - 864e5);
var dd = yesterday.getDate();
var mm = yesterday.getMonth() + 1; //January is 0!
var yyyy = yesterday.getFullYear();

// Use the connection
connection.query("SELECT id, restaurant_id, revenue_id, revenue_name, total_cash,visa,mc,amex,
DATE_FORMAT(business_date, '%d-%M-%Y') as business_date, item_sales FROM `alfred-
prod`.report_day_sales where restaurant_id=19 and DATE_FORMAT(business_date, '%Y-%m-%d') =
DATE_FORMAT('2014-09-01', '%Y-%m-%d')", function (error, results, fields) {
console.log("SELECT id, restaurant_id, revenue_id, revenue_name, total_cash,visa,mc,amex,
DATE_FORMAT(business_date, '%d-%M-%Y') as business_date, item_sales FROM `alfred-
prod`.report_day_sales where restaurant_id=230 and DATE_FORMAT(business_date, '%Y-%m-%d') =
DATE_FORMAT('"+yyyy+"-"+mm+"-"+dd+"', '%Y-%m-%d')")})



});

const response = {


statusCode: 200,



body: JSON.stringify(

https.get('https://postman-echo.com/get?'+
'username ='+
'&password ='+
'&date=' + results[0].business_date +
'&cashSales='+ results[0].total_cash +
'&creditCardVisa='+ results[0].visa +
'&creditCardMaster='+ results[0].mc +
'&creditCardAmex=' + results[0].amex +
'&creditCardOthers=0',

res => {
//console.log(res.statusCode);
//console.log(res.headers);

let body = '';

res.on('data',data =>{
body += data;
})

res.on('end',()=>console.log(body));

})




),
};
return response;
};

我正在尝试从 http 请求获取响应,其中包含 results[0].business date、results[0].total_cash 和其他所有内容。但我得到一个错误而不是输出。这是错误 -

回应:{ "errorType": "引用错误", "errorMessage": "结果未定义", “痕迹”: [ “ReferenceError:结果未定义”, “在 Runtime.exports.handler (/var/task/index.js:45:27)”, “在 Runtime.handleOnce (/var/runtime/Runtime.js:66:25)” ]}

最佳答案

我认为这就是您正在尝试做的事情。如果我理解正确的话,您正在尝试查询 mysql 以获取结果并使用该结果发送 http 请求。

const https = require("https");

const getResults = () => {
const queryResponse = await new Promise((resolve, reject) => {
pool.getConnection(function (err, connection) {

var yesterday = new Date(Date.now() - 864e5);
var dd = yesterday.getDate();
var mm = yesterday.getMonth() + 1; //January is 0!
var yyyy = yesterday.getFullYear();

const query = "SELECT id, restaurant_id, revenue_id, revenue_name, total_cash,visa,mc,amex, DATE_FORMAT(business_date, '%d-%M-%Y') as business_date, item_sales FROM `alfred-\
prod`.report_day_sales where restaurant_id = 19 and DATE_FORMAT(business_date, '%Y-%m-%d') = DATE_FORMAT('2014-09-01', '%Y-%m-%d')"
// Use the connection
connection.query(query, (error, results, fields) => {
if (error) {
reject(error);
}

resolve(results)
})
});
});

return queryResponse;
}

exports.handler = async (event) => {
const httpResponse = await new Promise((resolve, reject) => {

const results = await getResults();

const { business_date, total_cash, visa, mc, amex } = results[0]
https.get(
`https://postman-echo.com/get?username=&password=&date=${business_date}&cashSales=${total_cash}&creditCardVisa=${visa}&creditCardMaster=${mc}&creditCardAmex=${amex}&creditCardOthers=0`,
resp => {
let body = '';

// A chunk of data has been recieved.
resp.on("data", chunk => {
body += chunk;
});

// The whole response has been received. Print out the result.
resp.on("end", () => {
resolve(body);
});

resp.on("error", error => {
reject(error);
});
}
);
});

const response = {
statusCode: 200,
body: JSON.stringify(httpResponse),
};
return response;
};

注意:我还没有测试过这段代码,而且这也不是完整的代码。

关于mysql - 如何在node.js lambda aws中的httpget请求中获取mysql数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59538697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com