mysql2 async / await неопределенные строки и поля node.js - PullRequest
0 голосов
/ 03 апреля 2020

почему этот запрос ниже возвращает неопределенное в строках и поле, даже если у таблицы пользователя есть данные? Как я могу правильно использовать версию обещания в машинописи. Любая помощь будет с благодарностью. Спасибо ...

код

import mysql from 'mysql2';
import 'dotenv/config';
import bluebird from 'bluebird';

//? this all configuration for database connection
const connection: any = mysql.createConnection({
  host: process.env.DB_HOSTNAME,
  user: process.env.DB_USER,
  database: process.env.DATABASE,
  Promise: bluebird,
});

//! test connection - required
const testConnection = async () => {
  try {
    //? output to the console the query value
    let [rows, fields]: [any, any] = await connection.execute(
      'SELECT * FROM user',
    );
    console.log(rows, fields);
    console.log('successfully connected to database');
  } catch (error) {
    console.log(error);
  }
};


testConnection();

Консольный вывод undefined undefined successfully connected to database

1 Ответ

0 голосов
/ 03 апреля 2020

Глядя на mysql документы , у меня есть два предложения:

  • Я вижу, что вам нужно изменить то, что вы импортируете.
  • Также Вам также нужно дождаться звонка createConnection.
// get the client
const mysql = require('mysql2/promise');

// get the promise implementation, we will use bluebird
const bluebird = require('bluebird');

// create the connection, specify bluebird as Promise
const connection = await mysql.createConnection({host:'localhost', user: 'root', database: 'test', Promise: bluebird});

// query database
const [rows, fields] = await connection.execute('SELECT * FROM `table` WHERE `name` = ? AND `age` > ?', ['Morty', 14]);
...