常用的是 await 与 async 同时使用
app.get("/login", async (req, res) => {
let sql = "select * from user where username='" + req.query.username + "'";
console.log("SQL:" + sql);
let resultSql = await queryMysql(sql);
console.log("resultSql", resultSql);
res.send("登录路由,username为: " + req.query.username + " ==> password:" + req.query.password);
});
async function queryMysql(sql, callback) {
// 连接数据库
db.connect((err) => {
if (err) throw err;
console.log('连接成功');
});
const promise = new Promise(resolve => {
db.query(sql, (err, result) => {
if (err) {
console.log("err:" + err);
return null;
}else {
console.log("result", result);
resolve(result);
}
});
});
db.end();
return await promise;
}
返回显示
上面看到,这会先输出Promise里面的数据,再输出resolve返回到外面的数据
补充
只是一个示例,这个例子会有SQL注入的渗透点。