Недавно я хотел изучить Node.js, чтобы помочь мне найти работу, поэтому я запустил приложение для очистки веб-страниц.
Я начал с пакета mysql, но после написания кода я не имел в виду этоэто асинхронный процесс.
Тогда я нашел mysql2 с обещаниями, но я не уверен, что понимаю, как их правильно использовать, и я делаю плохую практику.
Вот мой код
const mysql = require('mysql2');
const pool = mysql.createPool({ ... });
var categorias = [];
var querySQL;
/*
Here goes web scraping stuff not needed in this question
*/
pool.getConnection(function(err, connection){
if(err) throw err;
querySQL = "SELECT 1 FROM Categories LIMIT 1";
connection.promise().query(querySQL).then(([rows,fields])=> {
if (rows!=undefined) {
console.log("The table already exist");
}else {
querySQL = "CREATE TABLE Categories (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(20))";
connection.query(querySQL,function(err,rows,field){
if(err) throw err;
console.log("The table has been created");
console.log(rows);
});
}
})
.catch(console.log)
.then( ()=> {
querySQL = "SELECT x FROM y";
connection.promise().query(querySQL).then(([rows,fields])=> {
/*
More stuff
*/
})
.catch(console.log)
.then( ()=> console.log("Promise ended") );
});
});
Вопрос в том, правильно ли я выполняю цепочки обещаний или есть другой способ, потому что этот код предназначен для создания таблиц базы данных, если их нет, а затем вставки данных. После первой вставки каждый раз, когда веб-сайт обновляет свое содержимое, я создам временную таблицу, чтобы проверить, есть ли новая категория, объект ... и т. Д., Так что это приводит меня к большему обещанию в этих обещаниях.