我刚刚开始接触Node.js。我来自PHP背景,所以我相当习惯使用MySQL来满足我的所有数据库需求。
我如何使用MySQL与Node.js?
我刚刚开始接触Node.js。我来自PHP背景,所以我相当习惯使用MySQL来满足我的所有数据库需求。
我如何使用MySQL与Node.js?
当前回答
查看node.js模块列表
node-mysql -一个实现MySQL协议的node.js模块 node-mysql2 -另一个纯JS异步驱动程序。流水线,准备好的语句。 node-mysql-libmysqlclient -基于libmysqlclient的MySQL异步绑定
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数据库的最好的模块之一,它是积极维护和良好的文档。
查看node.js模块列表
node-mysql -一个实现MySQL协议的node.js模块 node-mysql2 -另一个纯JS异步驱动程序。流水线,准备好的语句。 node-mysql-libmysqlclient -基于libmysqlclient的MySQL异步绑定
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'
通过安装库连接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连接和查询的例子
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')
您可以跳过ORM,构建器等,并使用sqler和sqler-mdb简化您的DB/SQL管理。
-- create this file at: db/mdb/setup/create.database.sql
CREATE DATABASE IF NOT EXISTS sqlermysql
const conf = {
"univ": {
"db": {
"mdb": {
"host": "localhost",
"username":"admin",
"password": "mysqlpassword"
}
}
},
"db": {
"dialects": {
"mdb": "sqler-mdb"
},
"connections": [
{
"id": "mdb",
"name": "mdb",
"dir": "db/mdb",
"service": "MySQL",
"dialect": "mdb",
"pool": {},
"driverOptions": {
"connection": {
"multipleStatements": true
}
}
}
]
}
};
// create/initialize manager
const manager = new Manager(conf);
await manager.init();
// .sql file path is path to db function
const result = await manager.db.mdb.setup.create.database();
console.log('Result:', result);
// after we're done using the manager we should close it
process.on('SIGINT', async function sigintDB() {
await manager.close();
console.log('Manager has been closed');
});