Ошибка создания базы данных, результат не определен

Я пытаюсь создать простой код nodejs, используя экспресс и mysql.

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

const db = mysql.createConnection({
    host : 'localhost',
    user : 'admin',
    password : ''
});

db.connect((err) => {
    if (err){
        console.info('Error while connecting');
    }
    console.info('Connected');
});     

const app = express();


app.get('/createdb',(req, res) => {

    let sql = 'CREATE DATABASE nodemysql';
    db.query(sql,(err,result) => {
        if (err){
            console.info("error while creating database");

        }
        console.info('result: '+result);
        res.send('database created..');
    });
});

app .listen('4200',() => {
    console.info('Server started on port 4200');
});

Ответ отправляется в браузер, который говорит

database created..

но результат, который он выдает, не определен. Также консоль, которая говорит

Error while creating database is printed

Ошибка, которую я получаю, это

[nodemon] restarting due to changes... [nodemon] restarting due to changes... [nodemon] starting node index.js
Server started on port 4200 Connected error while creating database result: undefined

Я не уверен, что я упускаю. Пожалуйста помоги.

в качестве предложения используйте СОЗДАТЬ БАЗУ ДАННЫХ, ЕСЛИ НЕ СУЩЕСТВУЕТ nodemysql

danblack 06.02.2019 05:54

Пытался. Это не сработало.

Khush 06.02.2019 06:07

Была ли база данных создана на самом деле? Что происходит, когда это выполняется в клиенте SQL с использованием той же аутентификации?

danblack 06.02.2019 06:10

Можете ли вы поделиться кодом ошибки MySQL.

Mossad 06.02.2019 06:10
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
4
233
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Я не эксперт, но добавил ключевое слово «функция», как показано ниже:

app.get('/createdb',(req, res) => {

    let sql = 'CREATE DATABASE nodemysql11';
    db.query(sql, function(err,result) => {
        if (err){
            console.info("error while creating database");

        }
        console.info('result: '+result);
        res.send('database created..');
    });
});

Добавление функции ключевого слова вызывает ошибку. Есть ли какие-либо другие изменения, которые необходимо внести, если нам нужно добавить ключевое слово function.

Khush 06.02.2019 06:23

Попробуйте это, это сработает

app.get('/createdb',(req, res) => {

db.query('CREATE DATABASE nodemysql11', function(err,result)  {
    if (err){
        console.info("error while creating database");

    }
    console.info('result: '+result);
    res.send('database created..');
});

});

Нет. Я все еще получаю тот же результат: неопределенная ошибка. База данных не создается.

Khush 06.02.2019 06:52
Ответ принят как подходящий

Приведенный ниже код должен работать нормально, попробуйте выполнить приведенный ниже код в файле .js. Если это сработает, то мы будем уверены, что ничего плохого в части conf.

var mysql = require('mysql');

var con = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "root"
});

con.connect(function(err) {
  if (err) throw err;
  console.info("Connected!");
  con.query("CREATE DATABASE mydb", function (err, result) {
    if (err) throw err;
    console.info("Database created");
  });
});

Тогда есть проблема в вашей части конфигурации.

Mossad 06.02.2019 06:55

Ок, а как узнать в чем проблема? Я очень новичок в базе данных, поэтому буду признателен за любую помощь.

Khush 06.02.2019 06:57

Я добавил новый ответ .. следуйте инструкциям там

Mossad 06.02.2019 07:00

Это сработало. Но результатом является [объект объект]. Почему у меня нет полей?

Khush 06.02.2019 07:08

Жаль не попал!

Mossad 06.02.2019 07:26

Согласно видео, на которое я ссылался, результат должен давать мне такие поля, как сообщение, протокол, количество предупреждений, измененные строки и т. д. Но я получаю его как [объектный объект].

Khush 06.02.2019 07:31

Попробуйте следующую строку, а затем запустите файл .js. Я предполагаю, что вы сделали npm install mysql

mv ./node_modules/node-mysql/node_modules/* ./node_modules/

да, я сделал npm install mysql. но он все еще не может найти указанный путь. У меня есть папка mysql внутри nodemodules, но node-mysql еще не существует.

Khush 06.02.2019 07:01

Другие вопросы по теме