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密钥在环境变量中设置,以生成登录令牌。

评论已关闭

推荐阅读

DDPG 模型解析,附Pytorch完整代码
2024年11月24日
DQN 模型解析,附Pytorch完整代码
2024年11月24日
AIGC实战——Transformer模型
2024年12月01日
Socket TCP 和 UDP 编程基础(Python)
2024年11月30日
python , tcp , udp
如何使用 ChatGPT 进行学术润色?你需要这些指令
2024年12月01日
AI
最新 Python 调用 OpenAi 详细教程实现问答、图像合成、图像理解、语音合成、语音识别(详细教程)
2024年11月24日
ChatGPT 和 DALL·E 2 配合生成故事绘本
2024年12月01日
omegaconf,一个超强的 Python 库!
2024年11月24日
【视觉AIGC识别】误差特征、人脸伪造检测、其他类型假图检测
2024年12月01日
[超级详细]如何在深度学习训练模型过程中使用 GPU 加速
2024年11月29日
Python 物理引擎pymunk最完整教程
2024年11月27日
MediaPipe 人体姿态与手指关键点检测教程
2024年11月27日
深入了解 Taipy:Python 打造 Web 应用的全面教程
2024年11月26日
基于Transformer的时间序列预测模型
2024年11月25日
Python在金融大数据分析中的AI应用(股价分析、量化交易)实战
2024年11月25日
AIGC Gradio系列学习教程之Components
2024年12月01日
Python3 `asyncio` — 异步 I/O,事件循环和并发工具
2024年11月30日
llama-factory SFT系列教程:大模型在自定义数据集 LoRA 训练与部署
2024年12月01日
Python 多线程和多进程用法
2024年11月24日
Python socket详解,全网最全教程
2024年11月27日