Я пытаюсь создать простой код 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
Я не уверен, что я упускаю. Пожалуйста помоги.
Пытался. Это не сработало.
Была ли база данных создана на самом деле? Что происходит, когда это выполняется в клиенте SQL с использованием той же аутентификации?
Можете ли вы поделиться кодом ошибки MySQL.






Я не эксперт, но добавил ключевое слово «функция», как показано ниже:
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.
Попробуйте это, это сработает
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..');
});
});
Нет. Я все еще получаю тот же результат: неопределенная ошибка. База данных не создается.
Приведенный ниже код должен работать нормально, попробуйте выполнить приведенный ниже код в файле .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");
});
});
Тогда есть проблема в вашей части конфигурации.
Ок, а как узнать в чем проблема? Я очень новичок в базе данных, поэтому буду признателен за любую помощь.
Я добавил новый ответ .. следуйте инструкциям там
Это сработало. Но результатом является [объект объект]. Почему у меня нет полей?
Жаль не попал!
Согласно видео, на которое я ссылался, результат должен давать мне такие поля, как сообщение, протокол, количество предупреждений, измененные строки и т. д. Но я получаю его как [объектный объект].
Попробуйте следующую строку, а затем запустите файл .js.
Я предполагаю, что вы сделали npm install mysql
mv ./node_modules/node-mysql/node_modules/* ./node_modules/
да, я сделал npm install mysql. но он все еще не может найти указанный путь. У меня есть папка mysql внутри nodemodules, но node-mysql еще не существует.
в качестве предложения используйте СОЗДАТЬ БАЗУ ДАННЫХ, ЕСЛИ НЕ СУЩЕСТВУЕТ nodemysql