MySQL与Node.js

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

我如何使用MySQL与Node.js?

查看node.js模块列表

  • node-mysql – 实现MySQL协议的node.js模块
  • node-mysql2 – 又一个纯JSasynchronous驱动程序。 stream水线,准备报表。
  • node-mysql-libmysqlclient – 基于libmysqlclient的MySQLasynchronous绑定

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

查询:

 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' 

node-mysql可能是用于处理MySQL数据库的最好的模块之一,它被主动维护和logging。

由于这是一个旧的线程只是添加更新:

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

如果只npm install mysql ,则需要位于运行服务器的相同目录中。 我build议以下面的一个例子来做:

对于全球安装:

 npm install -g mysql 

对于本地安装:

1-将它添加到你的package.json的依赖关系中:

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

2-运行npm install


请注意,对于发生连接,您还需要运行mysql服务器(这是独立的节点)

要安装MySQL服务器:

这里有一大堆的教程可以解释这个问题,而且它对操作系统有一定的依赖性。 只要去谷歌searchhow to install mysql server [Ubuntu|MacOSX|Windows] 。 但在一句话中:你必须去http://www.mysql.com/downloads/并安装它。;

这里是生产代码,可以帮助你。

的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/

您也可以尝试一个称为Node.js DB的新的努力,旨在为多个数据库引擎提供一个通用框架。 它是用C ++构build的,因此性能得到保证。

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

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') 

要么

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

通过安装一个库来连接mysql数据库。 在这里,select了稳定易用的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连接和查询的例子

 var express = require('express'); var router = express.Router(); /* GET home page. */ var mysql = require('mysql'); var con = mysql.createConnection({ host: "localhost", user: "root", password: "****", database: "nodejs" }); con.connect(function(err) { if (err) throw err; console.log("Connected!"); }); module.exports = con; 

按照链接http://datainflow.com/nodejs-mysql-connectivity/