MySQL与Node.js

cra*_*awf 372 mysql node.js

我刚开始进入Node.js. 我来自PHP背景,所以我很习惯使用MySQL来满足我所有的数据库需求.

如何在Node.js中使用MySQL?

mak*_*mak 424

查看node.js模块列表

node-mysql看起来很简单:

var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : 'example.org',
  user     : 'bob',
  password : 'secret',
});

connection.connect(function(err) {
  // connected! (unless `err` is set)
});
Run Code Online (Sandbox Code Playgroud)

查询:

var post  = {id: 1, title: 'Hello MySQL'};
var query = connection.query('INSERT INTO posts SET ?', post, function(err, result) {
  // Neat!
});
console.log(query.sql); // INSERT INTO posts SET `id` = 1, `title` = 'Hello MySQL'
Run Code Online (Sandbox Code Playgroud)

  • node-mysql的+1实际上使_easier_使用预准备语句而不是不使用它们 (81认同)
  • @KevinLaity我认为node-mysql [还没有](https://github.com/felixge/node-mysql#todo)已经准备好了语句.语法只是[看起来类似](https://github.com/felixge/node-mysql#escaping-query-values).相反,现在看来,特殊字符正在被转义. (4认同)
  • 另外,您可以获取数据库名称,将"数据库"添加到连接对象 (4认同)
  • https://github.com/bminer/node-mysql-queues用于事务和多语句支持以与node-mysql一起使用. (2认同)
  • 对于node-mysql也是+1.什么可以比只需要一个javascript库更好 (2认同)

yoj*_*o87 28

node-mysql可能是用于处理MySQL数据库的最佳模块之一,该数据库是主动维护和记录良好的.


fms*_*msf 19

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

要安装MySQL node.js驱动程序:

如果只运行npm install mysql,则需要与运行服务器的目录位于同一目录中.我建议按以下示例之一进行操作:

对于全局安装:

npm install -g mysql
Run Code Online (Sandbox Code Playgroud)

对于本地安装:

1-将其添加到您package.json的依赖项中:

"dependencies": {
    "mysql": "~2.3.2",
     ...
Run Code Online (Sandbox Code Playgroud)

2-运行 npm install


请注意,对于要发生的连接,您还需要运行mysql服务器(与节点无关)

要安装MySQL服务器:

有很多教程可以解释这一点,它有点依赖于操作系统.只是去谷歌搜索how to install mysql server [Ubuntu|MacOSX|Windows].但在一句话中:你必须去http://www.mysql.com/downloads/并安装它.

  • `npm install --save mysql`将安装它自动将它添加到你的`package.json` (2认同)

Sha*_*hid 10

这是生产代码,可以帮助您.

的package.json

{
  "name": "node-mysql",
  "version": "0.0.1",
  "dependencies": {
    "express": "^4.10.6",
    "mysql": "^2.5.4"
  }
}
Run Code Online (Sandbox Code Playgroud)

这是服务器文件.

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);
Run Code Online (Sandbox Code Playgroud)

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