推荐答案
// www.javascriptcn.com code example
const Koa = require('koa');
const Router = require('koa-router');
const { Client } = require('pg');
const app = new Koa();
const router = new Router();
// PostgreSQL 连接配置
const client = new Client({
user: 'your_username',
host: 'localhost',
database: 'your_database',
password: 'your_password',
port: 5432,
});
// 连接到 PostgreSQL
client.connect();
// 定义一个简单的路由
router.get('/users', async (ctx) => {
try {
const res = await client.query('SELECT * FROM users');
ctx.body = res.rows;
} catch (err) {
ctx.status = 500;
ctx.body = { error: err.message };
}
});
app.use(router.routes());
app.use(router.allowedMethods());
app.listen(3000, () => {
console.log('Server running on http://localhost:3000');
});本题详细解读
1. 安装依赖
首先,你需要安装 koa、koa-router 和 pg 这三个 npm 包。pg 是 PostgreSQL 的 Node.js 客户端库。
npm install koa koa-router pg
2. 创建 Koa 应用
创建一个基本的 Koa 应用,并初始化一个 Router 实例。
const Koa = require('koa');
const Router = require('koa-router');
const app = new Koa();
const router = new Router();3. 配置 PostgreSQL 连接
使用 pg 库中的 Client 类来配置 PostgreSQL 的连接。你需要提供数据库的用户名、主机、数据库名、密码和端口。
// www.javascriptcn.com code example
const { Client } = require('pg');
const client = new Client({
user: 'your_username',
host: 'localhost',
database: 'your_database',
password: 'your_password',
port: 5432,
});
client.connect();4. 定义路由
定义一个简单的路由 /users,在该路由中执行一个 SQL 查询,并将结果返回给客户端。
// www.javascriptcn.com code example
router.get('/users', async (ctx) => {
try {
const res = await client.query('SELECT * FROM users');
ctx.body = res.rows;
} catch (err) {
ctx.status = 500;
ctx.body = { error: err.message };
}
});5. 启动服务器
最后,将路由添加到 Koa 应用中,并启动服务器。
app.use(router.routes());
app.use(router.allowedMethods());
app.listen(3000, () => {
console.log('Server running on http://localhost:3000');
});6. 运行与测试
运行你的 Koa 应用,并访问 http://localhost:3000/users,你应该能够看到从 PostgreSQL 数据库中获取的用户数据。
node app.js
7. 错误处理
在实际应用中,建议添加更多的错误处理和日志记录,以确保应用的健壮性和可维护性。