推荐答案
// www.javascriptcn.com code example
const express = require('express');
const { Pool } = require('pg');
const app = express();
const pool = new Pool({
user: 'your_db_user',
host: 'localhost',
database: 'your_db_name',
password: 'your_db_password',
port: 5432,
});
app.get('/users', async (req, res) => {
try {
const { rows } = await pool.query('SELECT * FROM users');
res.json(rows);
} catch (err) {
console.error(err);
res.status(500).send('Server error');
}
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});本题详细解读
1. 安装依赖
首先,你需要安装 express 和 pg 这两个 npm 包。express 是用于构建 Web 应用程序的框架,而 pg 是 PostgreSQL 的 Node.js 客户端。
npm install express pg
2. 创建 Express 应用
使用 express 创建一个简单的 Web 服务器。
const express = require('express');
const app = express();3. 配置 PostgreSQL 连接池
使用 pg 模块中的 Pool 类来创建一个 PostgreSQL 连接池。连接池可以有效地管理数据库连接,避免频繁地创建和销毁连接。
// www.javascriptcn.com code example
const { Pool } = require('pg');
const pool = new Pool({
user: 'your_db_user',
host: 'localhost',
database: 'your_db_name',
password: 'your_db_password',
port: 5432,
});4. 创建路由处理数据库查询
在 Express 中创建一个路由,用于处理来自客户端的请求并查询数据库。使用 pool.query 方法来执行 SQL 查询。
// www.javascriptcn.com code example
app.get('/users', async (req, res) => {
try {
const { rows } = await pool.query('SELECT * FROM users');
res.json(rows);
} catch (err) {
console.error(err);
res.status(500).send('Server error');
}
});5. 启动服务器
最后,启动 Express 服务器并监听指定的端口。
app.listen(3000, () => {
console.log('Server is running on port 3000');
});6. 测试
启动服务器后,你可以通过访问 http://localhost:3000/users 来测试是否能够成功从 PostgreSQL 数据库中获取用户数据。
7. 错误处理
在实际应用中,建议添加更多的错误处理逻辑,例如处理数据库连接失败、查询失败等情况,以确保应用的健壮性。
8. 进一步优化
- 环境变量:将数据库连接信息存储在环境变量中,避免硬编码。
- ORM:考虑使用 ORM(如 Sequelize 或 TypeORM)来简化数据库操作。
- 连接池配置:根据应用的需求调整连接池的大小和其他配置参数。