

新闻资讯
技术学院本文介绍如何使用 express 构建一个 restful 接口,通过 url 路径参数(如 `/user/5`)接收用户 id,并从数据库中查询并返回对应用户信息,同时支持直接在浏览器中访问调试。
要实现类似 http://localhost:3000/user/5 这样的浏览器可访问接口,并返回结构化用户信息(例如 User id: 5 Name: Ann),需完成以下三步:定义路由、处理参数、查询数据库并响应。
使用 Express 的路径参数语法 :id 捕获动态 ID,推荐将路由统一设计为语义清晰的 /users/:id(复数形式符合 REST 规范):
const express = require('express');
const router = express.Router();
const User = require('./models/User'); // 假设使用 Mongoose 模型
router.get('/users/:id', async (req, res) => {
try {
const { id } = req.params; // 自动解析 URL 中的 :id(如 /users/5 → id = '5')
// 注意:若 ID 是 ObjectId(MongoDB),需验证格式有效性
if (!mongoose.Types.ObjectId.isValid(id)) {
return res.status(400).send('Invalid user ID format');
}
const user = await User.findById(id);
if (!user) {
return res.status(404).send('User not found');
}
// 返回简洁友好的 HTML 响应(适配浏览器直接访问)
res.send(`
User details
User id: ${user._id} Name: ${user.name || 'N/A'}
← Back to all users
`);
} catch (err) {
console.error(err);
res.status(500).send('Internal server error');
}
});
module.exports = router;
✅ 启动服务并测试确保已挂载路由(如 app.use('/users', userRouter)),启动服务后,在浏览器访问:
? http://localhost:3000/users/5
即可看到格式化的用户详情页。
总结:一个健壮的用户详情 GET 接口 = 正确路径参数 + 数据库安全查询 + 分层错误处理 + 适当的响应格式。遵循此模式,即可轻松扩展为完整用户管理 API。