Nodejs mysql查询不执行

我试图使用node.js创build一个MySQL数据库和表。

我想要执行的查询是:

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

所以我一次执行更多的查询。 在MySqlWorkbench中,这工作得很好。

在我的nodejs项目中,它说在我的sql语句中有一个语法错误。

我的节点代码:

 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.' ); }); 

为什么不能以这种方式在节点js中使用我的查询,但是语法在MySql工作台中工作得很好? 我错过了什么?

边注:

即时通讯使用node-mysql( https://github.com/felixge/node-mysql )为我的MySQL操作。

根据那里的文档,可能会串联查询,但在那里的文档只是谈论select查询的例子。

我讨厌自己的问题,但我find了解决办法。

我想念红色的文件。 可以通过在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.' ); }); 

为了创buildnode.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文件中build立连接添加代码

 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); }); }; };