3. Nodejs驱动使用说明
3.1. 连接数据库
使用 Client.connect() 连接数据库。
const { Client } = require('kb') /* 导入Nodejs驱动模块 */ /* 实例化Client对象 */ const client = new Client({ user: 'SYSTEM', /* 用户名 */ host: '192.168.0.102', /* 数据库服务器IP */ database: 'TEST', /* 要连接的库 */ */ */ */ password: '123456', /* 密码 */ */ port: 54321, /* 端口 */ */ */ ssl: false, /* 是否使用ssl加密,true/false ,默认值为false */ }) /* 连接数据库 */ client.connect(err => { if (err) { console.error('connection error', err.stack) } else { console.log('connected') } })
3.2. 执行语句
使用 Client.query() 执行语句。
-
执行不带参数的语句
client.query('SELECT * FROM TEST', (err, res) => { if (err) throw err console.log(res) })
-
执行带参数的语句
方法1:
const text = 'INSERT INTO users(name, email) VALUES($1, $2) RETURNING *' const values = ['myname', 'myemail@gmail.com'] /* 回调函数 */ client.query(text, values, (err, res) => { if (err) { console.log(err.stack) } else { console.log(res) } })方法2:
const query = { text: 'INSERT INTO users(name, email) VALUES($1, $2)', values: ['myname', 'myemail@gmail.com'], } /* 回调函数 */ client.query(query, (err, res) => { if (err) { console.log(err.stack) } else { console.log(res) } })
-
创建一个准备好的语句,在多次执行时提高效率
const query = { /* name参数用于命名准备好的语句 */ name: 'fetch-user', text: 'SELECT * FROM user WHERE id = $1', values: [1], } /* 回调函数 */ client.query(query, (err, res) => { if (err) { console.log(err.stack) } else { console.log(res) } })
3.3. 关闭连接
使用 Client.end() 关闭连接。
client.end(err => { console.log('client has disconnected') if (err) { console.log('error during disconnection', err.stack) } })