【问题标题】:Database creation failure, result Undefined数据库创建失败,结果未定义
【发布时间】:2019-02-06 13:57:08
【问题描述】:

我正在尝试使用 express 和 mysql 创建一个简单的 nodejs 代码。

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

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

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

const app = express();


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

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

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

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

响应被发送到显示

的浏览器

数据库已创建..

但它抛出的结果是未定义的。还有控制台说

打印创建数据库时出错

我得到的错误是

[nodemon] 由于更改而重新启动... [nodemon] 重启由于 更改... [nodemon] 开始 node index.js
服务器在 4200 端口启动 创建数据库时出现连接错误 结果:未定义

我不确定我错过了什么。请帮忙。

【问题讨论】:

  • 试过了。它不起作用。
  • 数据库真的创建了吗?在使用相同身份验证的 SQL 客户端执行此操作时会发生什么?
  • 你能分享一下MySQL错误代码吗?

标签: mysql node.js express


【解决方案1】:

下面的代码应该可以正常工作,尝试在 .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.log("Connected!");
  con.query("CREATE DATABASE mydb", function (err, result) {
    if (err) throw err;
    console.log("Database created");
  });
});

【讨论】:

  • 那你的配置部分有问题。
  • 好的,那么我如何找出问题所在?我对数据库非常陌生,因此我将不胜感激。
  • 我添加了一个新答案..按照那里的步骤进行操作
  • 成功了。但结果是[object object]。为什么我没有得到任何字段?
  • 抱歉没听懂!
【解决方案2】:

我不是专家,但添加了关键字'function',如下所示:

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

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

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

【讨论】:

  • 添加关键字函数是抛出错误。如果我们需要添加function关键字,是否需要进行其他更改。
【解决方案3】:

试试这个,它会起作用的

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

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

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

});

【讨论】:

  • 没有。我仍然得到相同的结果未定义错误。未创建数据库。
【解决方案4】:

尝试以下行,然后运行 ​​.js 文件。 我假设你已经完成了npm install mysql

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

【讨论】:

  • 是的,我已经完成了 npm install mysql。但它仍然找不到指定的路径。我在 nodemodules 中有一个 mysql 文件夹,但是 node-mysql 还不存在。
猜你喜欢
  • 2022-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多