MySQL with Node.js
我刚开始进入Node.js. 我来自PHP背景,所以我很习惯使用MySQL来满足我所有的数据库需求。
如何在Node.js中使用MySQL?
查看node.js模块列表
- node-mysql - 实现MySQL协议的node.js模块
- node-mysql2 - 又一个纯JS异步驱动程序。流水线,准备好的陈述。
- node-mysql-libmysqlclient - 基于libmysqlclient的MySQL异步绑定
node-mysql看起来很简单:
1 2 3 4 5 6 7 8 9 10 | var mysql = require('mysql'); var connection = mysql.createConnection({ host : 'example.org', user : 'bob', password : 'secret', }); connection.connect(function(err) { // connected! (unless `err` is set) }); |
查询:
1 2 3 4 5 |
node-mysql可能是用于处理MySQL数据库的最佳模块之一,该数据库是主动维护和记录良好的。
因为这是一个旧线程只是添加更新:
要安装MySQL node.js驱动程序:
如果只运行
对于全局安装:
1 | npm install -g mysql |
对于本地安装:
1-将其添加到依赖项中的
1 2 3 | "dependencies": { "mysql":"~2.3.2", ... |
2-运行
请注意,对于要发生的连接,您还需要运行mysql服务器(与节点无关)
要安装MySQL服务器:
有很多教程可以解释这一点,它有点依赖于操作系统。只需去谷歌搜索
这是生产代码,可以帮助您。
的package.json
1 2 3 4 5 6 7 8 | { "name":"node-mysql", "version":"0.0.1", "dependencies": { "express":"^4.10.6", "mysql":"^2.5.4" } } |
这是服务器文件。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | $ 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' } }); |
你可以像这样使用它
要么
Imo,你应该试试MySQL Connector / Node.js这是MySQL的官方Node.js驱动程序。
有关详细说明,请参见ref-1和ref-2。
我已经尝试了mysqljs / mysql,这里有可用的,但我没有找到关于这个库的类,方法和属性的详细文档。
所以我用
看一下下面的代码片段:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | const mysqlx = require('@mysql/xdevapi'); const rows = []; mysqlx.getSession('mysqlx://localhost:33060') .then(session => { const table = session.getSchema('testSchema').getTable('testTable'); // The criteria is defined through the expression. return table.update().where('name ="bar"').set('age', 50) .execute() .then(() => { return table.select().orderBy('name ASC') .execute(row => rows.push(row)); }); }) .then(() => { console.log(rows); }); |
您还可以尝试一种名为Node.js DB的新功能,旨在为多个数据库引擎提供通用框架。它是用C ++构建的,因此性能得到保证。
具体来说,您可以将其db-mysql驱动程序用于Node.js MySQL支持。
通过安装库连接mysql数据库。在这里,选择了稳定且易于使用的node-mysql模块。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
对于NodeJS mysql的连接和查询示例