gpt4 book ai didi

mysql - 我需要在 MySQL 语句中做出 promise 吗?

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

下面是我的 Node.js 应用程序中的 MySQL 语句。我在 MySQL 函数中使用了 Promise 来让 API 端点正常工作。这是 Node.js 和 MySQL 的典型模式吗?

const express = require('express');
const app = express();

app.use(express.static('client'));
const config = require('./config')

var mysql = require('mysql');

var con = mysql.createConnection({
host: config.HOST,
user: config.USER,
password: config.PASSWORD,
database: config.DATABASE
});

function GetConsumers(req, res) {
return new Promise(function (resolve, reject) {
con.connect(function (err) {
if (err) throw err;
con.query("SELECT * FROM " + config.DATABASE + ".Contracts", function (err, result, fields) {
if (err) throw err;
//console.log(result);
resolve(result);
});
});
}).then(rows => res.send(rows));
}

app.get('/consumers', GetConsumers);

module.exports = app;

最佳答案

正如乔治评论的那样,你真的不需要在这里返回一个 promise 。

function GetConsumers(req, res) {

con.connect(function (err) {
if (err) {
res.send(err)
};
con.query("SELECT * FROM " + config.DATABASE + ".Contracts", function (err, result, fields) {
if (err) {
res.send(err)
};
//console.log(result);
res.send(result)
});
});

}

如果您确实想使用 Promise,捕获异常始终是一个好习惯。

function GetConsumers(req, res) {
return new Promise(function (resolve, reject) {
con.connect(function (err) {
if (err){
reject(err);
}

con.query("SELECT * FROM " + config.DATABASE + ".Contracts",
function (err, result, fields) {
if (err){
reject(err);
}
//console.log(result);
resolve(result);
});
});
})

}

在任何需要的地方调用 GetConsumers 函数。

GetConsumers(req,res).then(rows => res.send(rows))
}).catch(err =>{
console.log("Handle your error here");
res.send("error")
})

Mysql npm 有关于如何使用该模块的良好文档。您可以更多引用here

关于mysql - 我需要在 MySQL 语句中做出 promise 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50769484/

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