Nodejs PostgreSQL数据库连接插件node-postgres的使用

Nodejs PostgreSQL数据库连接插件node-postgres的使用
node-postgres(也被称为pg)是一个非常流行的用于Node.js应用程序中连接和操作PostgreSQL数据库的库。下面将简要介绍如何安装、配置和使用这个库。

安装

首先,你需要在你的项目中安装pg库。你可以通过npm来安装:

npm install pg

基本使用

连接到数据库

const { Client } = require('pg');

// 创建一个新的客户端实例
const client = new Client({
  user: 'username',
  host: 'localhost',
  database: 'mydb',
  password: 'password',
  port: 5432,
});

// 连接到数据库
client.connect()
  .then(() => console.log('Connected successfully'))
  .catch(e => console.error('Connection Error', e.stack));

执行查询

// 执行一个简单的查询
client.query('SELECT NOW()')
  .then(res => {
    console.log(res.rows[0]); // 输出当前时间
    return client.end();
  })
  .catch(e => console.error(e.stack));

处理事务

// 开始一个事务
client.query('BEGIN')
  .then(() => {
    // 执行多个查询
    return Promise.all([
      client.query('INSERT INTO users(name) VALUES($1)', ['bobby']),
      client.query('INSERT INTO users(name) VALUES($1)', ['julie'])
    ]);
  })
  .then(() => {
    // 提交事务
    return client.query('COMMIT');
  })
  .catch(e => {
    // 如果发生错误,回滚事务
    return client.query('ROLLBACK')
      .then(() => console.error('Transaction Failed, ROLLBACK executed'));
  });

使用参数化查询

参数化查询可以防止SQL注入攻击,确保数据的安全性。

client.query(
  'SELECT * FROM users WHERE id = $1',
  [1],
  (err, res) => {
    if (err) throw err;
    console.log(res.rows);
    client.end();
  }
);

关闭连接

在完成所有数据库操作后,记得关闭数据库连接:

client.end()
  .then(() => console.log('Disconnected from the database'))
  .catch(e => console.error('Error disconnecting', e.stack));

以上就是使用node-postgres库进行基本数据库操作的方法。根据具体的应用场景,你可能需要调整连接字符串和其他配置选项。


3 回复

当然,小老弟!说到node-postgres(也叫pg),这可是个好东西。首先,确保你已经安装了它,用这条魔法咒语:

npm install pg

然后,你可以这样召唤你的PostgreSQL数据库:

const { Client } = require('pg');

const client = new Client({
  user: '你那神秘的用户名',
  host: '数据库的藏身之处',
  database: '数据库的名字',
  password: '进入的秘密代码',
  port: 5432, // 默认端口,如果你的不一样,记得修改
});

client.connect();

client.query('SELECT $1::text as name', ['张三'], (err, res) => {
  console.log(res.rows[0].name);
  client.end();
});

这段代码就像是给数据库施了个小小的法术,让它吐出点秘密。别忘了,每次施展完法术后,记得结束连接,就像说“再见”一样。

希望这个小教程能让你的项目变得像魔法一样神奇!


node-postgres(通常称为pg)是一个用于Node.js的PostgreSQL客户端。下面是一些基本的使用方法和示例代码,包括如何安装、连接数据库以及执行基本的CRUD操作。

1. 安装

首先,你需要安装pg包。可以通过npm来安装:

npm install pg

2. 连接数据库

以下是如何使用pg库连接到PostgreSQL数据库的基本示例:

const { Client } = require('pg');

const client = new Client({
  user: 'yourusername',
  host: 'localhost',
  database: 'yourdbname',
  password: 'yourpassword',
  port: 5432,
});

client.connect()
  .then(() => console.log('Connected to the database'))
  .catch(e => console.error('Connection Error', e.stack));

3. 执行查询

你可以使用query()方法来执行SQL查询。例如,查询表中的所有数据:

const queryText = 'SELECT * FROM your_table_name;';

client.query(queryText)
  .then(res => {
    console.log(res.rows); // 输出结果
    client.end(); // 结束连接
  })
  .catch(e => console.error('Query Error', e.stack));

4. 插入数据

如果你想插入新数据到表中,可以这样做:

const insertQuery = {
  name: 'insert-data',
  text: 'INSERT INTO your_table_name (column1, column2) VALUES ($1, $2)',
  values: ['value1', 'value2']
};

client.query(insertQuery)
  .then(() => console.log('Data inserted successfully'))
  .catch(e => console.error('Insert Error', e.stack));

5. 更新和删除数据

更新数据可以这样:

const updateQuery = {
  name: 'update-data',
  text: 'UPDATE your_table_name SET column1 = $1 WHERE id = $2',
  values: ['new_value1', 1]
};

client.query(updateQuery)
  .then(() => console.log('Data updated successfully'))
  .catch(e => console.error('Update Error', e.stack));

删除数据可以这样:

const deleteQuery = {
  name: 'delete-data',
  text: 'DELETE FROM your_table_name WHERE id = $1',
  values: [1]
};

client.query(deleteQuery)
  .then(() => console.log('Data deleted successfully'))
  .catch(e => console.error('Delete Error', e.stack));

这些例子展示了如何使用pg模块进行基本的数据库操作。你可以根据需要调整查询语句以满足你的具体需求。

node-postgres(也称为pg)是Node.js中用于连接PostgreSQL数据库的库。首先,你需要通过npm安装它:

npm install pg

连接数据库示例:

const { Pool, Client } = require('pg')

const pool = new Pool({
  user: 'user',
  host: 'localhost',
  database: 'mydb',
  password: 'password',
  port: 5432,
})

pool.query('SELECT * FROM users', (err, res) => {
  console.log(res.rows)
  pool.end()
})

以上代码创建了一个连接池,并执行了一个简单的查询。Client类也可用于单个客户端连接。

回到顶部