nodeJS开发简易增删改查接口

const express = require('express');
const bodyParser = require('body-parser');
const jwt = require('jsonwebtoken');

// 创建Express应用
const app = express();

// 使用body-parser中间件解析请求体
app.use(bodyParser.json());

// 模拟存储用户数据的数组
let users = [];

// 获取所有用户
app.get('/users', (req, res) => {
  res.json({
    code: 200,
    message: 'Success',
    data: users
  });
});

// 获取指定id的用户
app.get('/users/:id', (req, res) => {
  const id = req.params.id;
  const user = users.find(user => user.id === id);

  if (user) {
    res.json({
      code: 200,
      message: 'Success',
      data: user
    });
  } else {
    res.status(404).json({
      code: 404,
      message: 'User not found'
    });
  }
});

// 创建新用户
app.post('/users', (req, res) => {
  const user = req.body;

  // 检查必要字段是否存在
  if (!user.username || !user.email || !user.password) {
    return res.status(400).json({
      code: 400,
      message: 'Missing required fields'
    });
  }

  // 检查用户是否已存在
  const existingUser = users.find(u => u.username === user.username || u.email === user.email);
  if (existingUser) {
    return res.status(409).json({
      code: 409,
      message: 'Username or email already exists'
    });
  }

  user.id = user.id;
  users.push(user);

  res.status(201).json({
    code: 201,
    message: 'User created successfully',
    data: user
  });
});

// 更新指定id的用户
app.put('/users/:id', (req, res) => {
  const id = req.params.id;
  const updatedUser = req.body;
  const index = users.findIndex(user => user.id === id);

  if (index !== -1) {
    users[index] = { ...users[index], ...updatedUser };
    res.json({
      code: 200,
      message: 'User updated successfully',
      data: users[index]
    });
  } else {
    res.status(404).json({
      code: 404,
      message: 'User not found'
    });
  }
});

// 删除指定id的用户
app.delete('/users/:id', (req, res) => {
  const id = req.params.id;
  const index = users.findIndex(user => user.id === id);

  if (index !== -1) {
    const deletedUser = users.splice(index, 1);
    res.json({
      code: 200,
      message: 'User deleted successfully',
      data: deletedUser[0]
    });
  } else {
    res.status(404).json({
      code: 404,
      message: 'User not found'
    });
  }
});

// 生成新用户ID(示例中使用UUID)
function generateUserId() {
  return `${Date.now().toString(36)}-${Math.random().toString(36).substr(2, 9)}`;
}


// 登录接口
app.post('/api/login', (req, res) => {
    const { mobile, password } = req.body;
  
    // 这里可以根据手机号和密码进行验证,假设验证通过
    if (mobile === '123456789' && password === 'password') {
      // 生成 Token
      const token = jwt.sign({ mobile }, 'secretKey', { expiresIn: '1h' });
  
      // 返回 Token
      res.json({ token });
    } else {
      // 验证失败,返回错误信息
      res.status(401).json({ error: '登录失败' });
    }
  });
  
  // 其他需要验证 Token 的接口
  app.get('/api/protected', (req, res) => {
    // 从请求头中获取 Token
    const token = req.headers.authorization.split(' ')[1];
  
    try {
      // 验证 Token 是否有效
      const decoded = jwt.verify(token, 'secretKey');
  
      // 验证通过,返回受保护的数据
      res.json({ data: '这是受保护的数据' });
    } catch (error) {
      // Token 验证失败,返回错误信息
      res.status(401).json({ error: '无效的 Token' });
    }
  });

// 错误处理中间件
app.use((err, req, res, next) => {
  console.error(err);
  res.status(500).json({
    code: 500,
    message: 'Internal server error'
  });
});

// 启动服务器
const port = 3000;
app.listen(port, () => {
  console.log(`Server is running on port ${port}`);
});

你可能感兴趣的:(前端,javascript,开发语言,vue.js)