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;