knex.js
knex是可以用于支持 node.js和browser 查询SQL的框架。
安装
根据官网介绍 安装十分简单
npm install knex --save
并选择安装你需要的数据库驱动
$ npm install pg
$ npm install sqlite3
$ npm install mysql
$ npm install mysql2
$ 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'
}
});
Code
function test1(){
let query =knex("name").select("tag.url");
query.where("api.id",1);
query.then(data =>{
console.log(data)
}).catch(err =>{
console.log(err)
})
return query
}
其他
更多的使用 可以查询 官网
Error
在测试上述代码后发现执行没有得到预期效果,反而报错
code: 'ER_NOT_SUPPORTED_AUTH_MODE',
errno: 1251,
sqlMessage:
'Client does not support authentication protocol requested by server; consider upgrading MySQL client',
sqlState: '08004',
fatal: true
发现是客户端不支持mysql的版本,由于mysql是 docker pull mysql:latest出来的容器。版本为8.0.14
处理
出现'Client does not support authentication protocol requested by server; consider upgrading MySQL client'错误时,要么升级客户端,要么降低服务端。而且查看node.js mysql driver 支持版本为 5.7.21
, 降低服务端mysql版本,再次测试成功。