📅  最后修改于: 2023-12-03 15:36:44.173000             🧑  作者: Mango
Knex是一个用于构建SQL查询的JavaScript库。它允许你使用JavaScript来构建和执行SQL查询,同时具有不同类型数据库的兼容性。
你可以使用npm命令来安装Knex。
npm install knex
Knex支持多种数据库,如PostgreSQL,MySQL,SQLite等等。 连接到数据库的代码如下所示:
const knex = require('knex')({
client: 'pg',
connection: {
host : 'localhost',
user : 'your_database_user',
password : 'your_database_password',
database : 'myapp_test'
}
});
Knex允许你使用JavaScript构建可读性强的SQL查询。以下是一个简单的查询示例:
knex('users')
.select('id', 'name', 'email')
.where('name', 'like', '%john%')
.orWhere('email', 'like', '%john%')
.then(rows => {
console.log(rows);
});
Knex支持Promise,使查询更加高效。以下是一个使用Promise的示例:
knex('users')
.select('id', 'name', 'email')
.where('name', 'like', '%john%')
.orWhere('email', 'like', '%john%')
.then(rows => {
console.log(rows);
})
.catch(error => {
console.log(error);
});
Knex支持事务。以下是一个使用事务的示例:
knex.transaction(trx => {
knex('users')
.transacting(trx)
.insert({name: 'John', email: 'john@example.com'})
.then(() => knex('accounts')
.transacting(trx)
.insert({user_id: userId, account_name: 'Test account'})
)
.then(trx.commit)
.catch(trx.rollback);
})
.then(() => {
console.log('Transaction complete.');
})
.catch(error => {
console.log(`Transaction failed. ${error}`)
});
Knex是一个强大的JavaScript库,可用于构建SQL查询。它提供了多种数据源的兼容性,具有可读性强的SQL查询和支持Promise和事务等功能。如果你需要构建可读性强的SQL查询,Knex是一款值得尝试的JavaScript库。