【问题标题】:Nodejs mysql query not executingNodejs mysql查询未执行
【发布时间】:2013-07-03 13:25:25
【问题描述】:

我正在尝试使用 node.js 创建 MySql 数据库和表。

我要执行的查询是:

CREATE DATABASE NodeTest;USE NodeTest;CREATE TABLE tblUsers (userId varchar(32), userName varchar(255), friendlyUserName varchar(255));

所以我将查询连接在一起。在 MySqlWorkbench 中,这工作得很好。

在我的 NodeJS 项目中,它说我的 SQL 语句中有一个 syntax error

我的节点代码:

    mysqlConnection.query( 'CREATE DATABASE NodeTest;USE NodeTest;CREATE TABLE tblUsers (userId varchar(32), userName varchar(255), friendlyUserName varchar(255));' , function( oError ){

        if ( oError )  throw oError;

        console.log( 'Database created.' );
    });

我正在使用 node-mysql (https://github.com/felixge/node-mysql) 进行 mysql 操作。

根据文档,可以连接查询。

为什么这不起作用?

【问题讨论】:

  • 尝试分别执行查询...因为也许 nodejs 不支持多个查询

标签: mysql node.js


【解决方案1】:

我讨厌回答自己的问题,但我找到了解决方案。

我想念红色的文档。可以通过在 createConnection() 选项中设置选项 {multipleStatements: true} 来实现。

像这样:


    mysqlConnection = mysql.createConnection({
        host: settings.mysqlServer,
        user: settings.mysqlUser,
        password: settings.mysqlPassword,
        multipleStatements: true   // <------
    });

    mysqlConnection.query( 'CREATE DATABASE NodeTest;USE NodeTest;CREATE TABLE tblUsers (userId varchar(32), userName varchar(255), friendlyUserName varchar(255));' , function( oError ){

        if ( oError )  throw oError;

        console.log( 'Database created.' );
    });

【讨论】:

    【解决方案2】:

    用于创建 node.js 与 MySQL 的连接 首先你在node.js中安装mysql连接器

    $ npm install mysql
    

    那么 您应该在 datasources.json 文件中添加代码

    {
      "db": {
        "name": "db",
        "connector": "memory"
      },
      "sql": {
        "host": "localhost",
        "port": "3306",
        "database": "database name",
        "username": "root",
        "password": "",
        "name": "sql",
        "connector": "mysql"
      }
    }
    

    为了建立连接,在.js文件中添加代码

    module.exports = function(Module_Name) {
    
        Module_Name.remoteMethod( 'table_name',
        { accepts: [],
        returns: [
        {arg: 'data', type: 'string',}
        ],
        });
    
        Module_Name.table_name= function (cb) {
    
            var ds = Module_Name.dataSource;
    
            ds.connector.query(sql, function (err) {
    
                if (err) console.error(err);
    
            });
        };
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-05
      • 2017-01-11
      • 1970-01-01
      • 1970-01-01
      • 2014-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多