Node.js 基于车辆交易管理系统
由于提供的代码已经是一个完整的Node.js项目,包括了服务器的初始化、路由的设置以及数据库的连接,下面我将给出一个简单的登录接口示例。
const express = require('express');
const router = express.Router();
const bcrypt = require('bcryptjs');
const db = require('../config/db');
// 用户登录接口
router.post('/login', async (req, res) => {
const { username, password } = req.body;
if (!username || !password) {
return res.status(400).json({ message: '用户名和密码不能为空' });
}
try {
const user = await db.query('SELECT * FROM users WHERE username = $1', [username]);
if (!user.rows.length) {
return res.status(401).json({ message: '用户名不存在' });
}
const match = await bcrypt.compare(password, user.rows[0].password);
if (match) {
// 生成token
const token = jwt.sign({ id: user.rows[0].id }, process.env.JWT_SECRET, { expiresIn: '1h' });
res.json({ message: '登录成功', token });
} else {
res.status(401).json({ message: '密码错误' });
}
} catch (error) {
res.status(500).json({ message: '服务器错误' });
}
});
module.exports = router;
在这个示例中,我们定义了一个登录接口,当客户端发送登录请求时,服务器将验证用户名和密码,并返回相应的响应。注意,示例中使用了bcrypt
库来比对密码,并假设你已经有了一个名为users
的数据库表,其中包含用户的用户名和加密后的密码。此外,还需要有一个有效的JWT密钥在环境变量中设置,以生成登录令牌。
评论已关闭