我刚刚开始接触Node.js。 我来自PHP背景,因此我习惯于使用MySQL满足所有数据库需求。
如何在Node.js中使用MySQL?
#1楼
通过安装库连接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();
#2楼
由于这是旧线程,因此只需添加更新:
要安装MySQL node.js驱动程序:
如果仅npm install mysql
,则需要与运行服务器所在的目录相同。 我建议按照以下示例之一进行操作:
对于全局安装:
npm install -g mysql
对于本地安装:
1-将其添加到依赖项的package.json
中:
"dependencies": {
"mysql": "~2.3.2",
...
2-运行npm install
请注意,要使连接发生,您还需要运行mysql服务器(与节点无关)
要安装MySQL服务器:
那里有很多教程对此进行了解释,并且这在一定程度上取决于操作系统。 只需转到Google并搜索how to install mysql server [Ubuntu|MacOSX|Windows]
。 但有一句话:您必须转到http://www.mysql.com/downloads/并进行安装。
#3楼
这是可以帮助您的生产代码。
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/
#4楼
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')
#5楼
Imo,您应该尝试使用MySQL Connector / Node.js,它是MySQL的官方Node.js驱动程序。 有关详细说明,请参见ref-1和ref-2 。 我已经尝试了mysqljs / mysql,可以在这里获得 ,但是我找不到关于该库的类,方法和属性的详细文档。
因此,我使用X DevAPI
切换到了标准的MySQL Connector/Node.js
,因为它是一个基于Promise的异步客户端库,并且提供了很好的文档。 看一下以下代码片段:
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);
});
来源:oschina
链接:https://my.oschina.net/stackoom/blog/3167077