Возвращение данных с базы данных

Есть файл Controlller

export let a = ''
import * as mysqldb from './mysql/connectsql.js'
const MySqls = new mysqldb.conndb()
export class Conrole {
    async login(req, res) {
        try {
            console.log(await MySqls.zapros('SELECT * FROM `user`;'))
            return res.status(200).json({mes: "USSS"})
        } catch(e) {
            return res.status(500).json(e)
        }  
    }
}

Который обращается к файлу connectsql для получения информации с базы данных

import mysql from 'mysql'
export class conndb {
  async zapros(zaprosname){
    var connection = mysql.createConnection({
      host: 'server131.hosting.reg.ru',
      port: '3306',
      user     : '',
      password : '',
      database : ''
    });
    connection.connect(err => {
      if (err != null) {console.log(err)}
    });
    let query = 'SELECT * FROM `user`;'
    connection.query(zaprosname, (error, results, fields) => {
      console.log(results)
      return results
    });

    connection.end();
  }
}

как вернуть поле result после обращения к бд в файл Controller?


Ответы (1 шт):

Автор решения: SwaD

Попробуйте либо через коллбэк функцию

export class Conrole {
    async login(req, res) {
        try {
            console.log(await MySqls.zapros('SELECT * FROM `user`;', (res) => {
                return res.status(200).json({mes: "USSS"})
            }
            ))
            
        } catch(e) {
            return res.status(500).json(e)
        }  
    }
}

import mysql from 'mysql'
export class conndb {
  async zapros(zaprosname, callBack) {
    var connection = mysql.createConnection({
      host: 'server131.hosting.reg.ru',
      port: '3306',
      user     : '',
      password : '',
      database : ''
    });
    connection.connect(err => {
      if (err != null) {console.log(err)}
    });
    let query = 'SELECT * FROM `user`;';
    connection.query(zaprosname, (error, results, fields) => {
      console.log(results)
      callBack(results);
    });
    connection.end();
  }
}

Либо с использованием Promice

export class conndb {
  async zapros(zaprosname){
    var connection = mysql.createConnection({
      host: 'server131.hosting.reg.ru',
      port: '3306',
      user     : '',
      password : '',
      database : ''
    });
    connection.connect(err => {
      if (err != null) {console.log(err)}
    });
    
    return new Promise((resolve, reject) => {
        connection.query(zaprosname, (error, results, fields) => {
          console.log(results)
          if (results) {
              resolve(results);
          } else {
              reject(error)
          }
          
          connection.end();
        });
    })
    
  }
}
→ Ссылка