The problem is that db.query
uses callback style instead of promise style. You need to convert it to use promises.
One way is to use Util.promisify
...
const util = require('util'); const mysql = require('mysql'); const db = mysql.createConnection({ host: "*****", port: *****, user: "*****", password: "*****", database: "*****", }); // 將db.query轉(zhuǎn)換為返回promise的函數(shù) const promisifiedQuery = util.promisify(db.query); export const lambdaHandler = async (event: any, context: any,) => { const user = { uid: event.request.userAttributes.sub, username: event.request.userAttributes.nickname, email: event.request.userAttributes.email, }; console.log("before query"); // 順便說一下,這樣做是不好的。請閱讀有關(guān)如何避免SQL注入的內(nèi)容。 const query = `INSERT INTO users (Uid, Username, Email) VALUES (${user.uid}, ${user.username}, ${user.email})`; await promisifiedQuery(query).then(result => { console.log("query response: " + result) console.log("after query") }).catch(console.error) return event; };