我刚刚开始接触Node.js。我来自PHP背景,所以我相当习惯使用MySQL来满足我的所有数据库需求。

我如何使用MySQL与Node.js?


当前回答

通过安装库连接mysql数据库。在这里,选择了稳定且易于使用的node-mysql模块。

npm install mysql@2.0.0-alpha2

var http = require('http'),
   mysql = require('mysql');

var sqlInfo = {
   host: 'localhost',
   user: 'root',
   password: 'urpass',
   database: 'dbname'
}
client = mysql.createConnection(sqlInfo);

client.connect();

用于NodeJS mysql连接和查询的例子

其他回答

以下是生产代码,可能会对您有所帮助。

Package.json

{
  "name": "node-mysql",
  "version": "0.0.1",
  "dependencies": {
    "express": "^4.10.6",
    "mysql": "^2.5.4"
  }
}

这是服务器文件。

var express   =    require("express");
var mysql     =    require('mysql');
var app       =    express();

var pool      =    mysql.createPool({
    connectionLimit : 100, //important
    host     : 'localhost',
    user     : 'root',
    password : '',
    database : 'address_book',
    debug    :  false
});

function handle_database(req,res) {

    pool.getConnection(function(err,connection){
        if (err) {
          connection.release();
          res.json({"code" : 100, "status" : "Error in connection database"});
          return;
        }   

        console.log('connected as id ' + connection.threadId);

        connection.query("select * from user",function(err,rows){
            connection.release();
            if(!err) {
                res.json(rows);
            }           
        });

        connection.on('error', function(err) {      
              res.json({"code" : 100, "status" : "Error in connection database"});
              return;     
        });
  });
}

app.get("/",function(req,res){-
        handle_database(req,res);
});

app.listen(3000);

参考资料:https://codeforgeek.com/2015/01/nodejs-mysql-tutorial/

KnexJs可以在Node.JS和浏览器中用作SQL查询构建器。 我发现它很容易使用。让我们试试它- Knex.js

$ npm install knex --save
# Then add one of the following (adding a --save) flag:
$ npm install pg
$ npm install sqlite3
$ npm install mysql
$ npm install mysql2
$ npm install mariasql
$ npm install strong-oracle
$ npm install oracle
$ npm install mssql


var knex = require('knex')({
  client: 'mysql',
  connection: {
    host : '127.0.0.1',
    user : 'your_database_user',
    password : 'your_database_password',
    database : 'myapp_test'
  }
});

你可以这样用

knex.select('*').from('users')

or

knex('users').where({
  first_name: 'Test',
  last_name:  'User'
}).select('id')

通过安装库连接mysql数据库。在这里,选择了稳定且易于使用的node-mysql模块。

npm install mysql@2.0.0-alpha2

var http = require('http'),
   mysql = require('mysql');

var sqlInfo = {
   host: 'localhost',
   user: 'root',
   password: 'urpass',
   database: 'dbname'
}
client = mysql.createConnection(sqlInfo);

client.connect();

用于NodeJS mysql连接和查询的例子

因为这是一个旧线程,只是添加了一个更新:

安装MySQL node.js驱动程序:

如果你只是运行npm install mysql,你需要在运行服务器的同一个目录下。我建议按照下面的例子来做:

全球安装:

npm install -g mysql

本地安装:

1-把它添加到你的包里。Json的依赖项:

"dependencies": {
    "mysql": "~2.3.2",
     ...

2-运行NPM install


注意,为了建立连接,你还需要运行mysql服务器(它是独立于节点的)

安装MySQL服务器:

有很多教程解释了这一点,它有点依赖于操作系统。只要去谷歌搜索如何安装mysql服务器[Ubuntu|MacOSX|Windows]。但一句话:你必须去http://www.mysql.com/downloads/并安装它。

您还可以尝试一种名为Node.js DB的新方法,该方法旨在为多个数据库引擎提供一个通用框架。它是用c++构建的,因此性能得到了保证。

具体来说,你可以使用它的db-mysql驱动程序来支持Node.js的MySQL。