Попытка разработки REST API в Node.Js с использованием базы данных MySQL. Не могли бы вы помочь мне написать лучший код?
Два самых важных вопроса здесь,
1 - How we can take the createConnection logic out of userModel.js?
2 - Shall I end the connection on every API call?
Предсказанный ответ
filename : db.js
const mysql = require('mysql2/promise');
module.exports = async function(){
return await mysql.createConnection({host:'localhost', user: 'user', password:'pass', database: 'database'});
}
and in userModel.js
const mysql = require('db.js');
module.exports.getProfile(user_id){
try{
const [rows, fields] = await db.execute('SELECT * FROM `table` WHERE `user_id` = ?', [1]);
console.log(rows);
}catch(err){
console.log(err);
}
await db.end();
}
Приведенная выше реализация кода приведет к ошибкам. Если мы попытаемся снова запустить API с помощью "{Ошибка: невозможно добавить новую команду, когда соединение находится в закрытом состоянии в PromiseConnection.execute"
Возможно, если использовать этот нижеприведенный подход, который кажется глупым, мы можем снова вызвать тот же API n без какой-либо ошибки.
Также в userModel.js есть много функций, и в этом случае мы должны создавать и завершать соединение с каждым методом API.
userModel.js
const mysql = require('mysql2/promise');
const db = await mysql.createConnection({host:'localhost', user: 'user', password:'pass', database: 'database'});
try{
const [rows, fields] = await db.execute('SELECT * FROM `table` WHERE `user_id` = ?', [1]);
console.log(rows);
}catch(err){
console.log(err);
}
await db.end();
Любой совет будет полезен.
С уважением,