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}`);
});

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一个使用 Node.js、Express.js 和 MongoDB 实现增删接口的示例: 1. 首先,需要安装相关依赖: ``` npm install express mongoose body-parser --save ``` 2. 创建 Express.js 应用程序,并连接 MongoDB 数据库: ```javascript const express = require('express'); const mongoose = require('mongoose'); const bodyParser = require('body-parser'); const app = express(); // 连接 MongoDB 数据库 mongoose.connect('mongodb://localhost/test', { useNewUrlParser: true, useUnifiedTopology: true }); // 使用 body-parser 解析请求体 app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); // 定义数据模型 const UserSchema = new mongoose.Schema({ username: String, password: String, age: Number }); const User = mongoose.model('User', UserSchema); // 启动服务器 app.listen(3000, () => { console.log('Server started on port 3000'); }); ``` 3. 实现增删接口: ```javascript // 添加用户 app.post('/users', async (req, res) => { const { username, password, age } = req.body; const user = new User({ username, password, age }); try { await user.save(); res.status(201).json({ message: 'User created successfully', user }); } catch (err) { res.status(400).json({ message: 'Failed to create user', error: err.message }); } }); // 获取所有用户 app.get('/users', async (req, res) => { try { const users = await User.find(); res.status(200).json(users); } catch (err) { res.status(400).json({ message: 'Failed to fetch users', error: err.message }); } }); // 获取单个用户 app.get('/users/:id', async (req, res) => { const { id } = req.params; try { const user = await User.findById(id); if (user) { res.status(200).json(user); } else { res.status(404).json({ message: 'User not found' }); } } catch (err) { res.status(400).json({ message: 'Failed to fetch user', error: err.message }); } }); // 更新用户 app.put('/users/:id', async (req, res) => { const { id } = req.params; const { username, password, age } = req.body; try { const user = await User.findById(id); if (user) { user.username = username; user.password = password; user.age = age; await user.save(); res.status(200).json({ message: 'User updated successfully', user }); } else { res.status(404).json({ message: 'User not found' }); } } catch (err) { res.status(400).json({ message: 'Failed to update user', error: err.message }); } }); // 删除用户 app.delete('/users/:id', async (req, res) => { const { id } = req.params; try { const user = await User.findById(id); if (user) { await user.remove(); res.status(200).json({ message: 'User deleted successfully', user }); } else { res.status(404).json({ message: 'User not found' }); } } catch (err) { res.status(400).json({ message: 'Failed to delete user', error: err.message }); } }); ``` 以上代码实现了一个简单的增删接口,可以通过发送 HTTP 请求来添加、获取、更新和删除用户数据。当请求成功时,将返回相应的状态码和数据;当请求失败时,将返回相应的状态码和错误信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小航冲冲冲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值