自学内容网 自学内容网

Sequelize+Sqlite3使用示例

        以下是一个简单的示例,展示了如何在Node.js中使用Express框架、Sequelize ORM以及SQLite数据库来构建一个支持RESTful API的Web应用程序。

一,安装必要的npm包:

npm install express sequelize sqlite3 body-parser

二,创建JavaScript文件

(例如app.js),并添加以下代码:

const express = require('express');
const { Sequelize, DataTypes } = require('sequelize');
const bodyParser = require('body-parser');

// 初始化Express应用
const app = express();
app.use(bodyParser.json());

// 配置Sequelize以使用SQLite数据库
const sequelize = new Sequelize({
  dialect: 'sqlite',
  storage: 'database.sqlite' // SQLite数据库文件的路径
});

// 定义User模型
const User = sequelize.define('User', {
  username: {
    type: DataTypes.STRING,
    allowNull: false,
    unique: true // 用户名唯一
  },
  email: {
    type: DataTypes.STRING,
    allowNull: false,
    unique: true // 邮箱唯一
  }
});

// 同步模型到数据库(创建表)
sequelize.sync().then(() => {
  console.log('Database & tables created!');

  // 定义RESTful路由
  // 获取所有用户
  app.get('/users', async (req, res) => {
    try {
      const users = await User.findAll();
      res.json(users);
    } catch (error) {
      res.status(500).json({ error: error.message });
    }
  });

  // 根据ID获取用户
  app.get('/users/:id', async (req, res) => {
    try {
      const user = await User.findByPk(req.params.id);
      if (!user) {
        return res.status(404).json({ error: 'User not found' });
      }
      res.json(user);
    } catch (error) {
      res.status(500).json({ error: error.message });
    }
  });

  // 创建新用户
  app.post('/users', async (req, res) => {
    try {
      const user = await User.create(req.body);
      res.status(201).json(user);
    } catch (error) {
      res.status(400).json({ error: error.message });
    }
  });

  // 更新用户
  app.put('/users/:id', async (req, res) => {
    try {
      const user = await User.findByPk(req.params.id);
      if (!user) {
        return res.status(404).json({ error: 'User not found' });
      }
      await user.update(req.body);
      res.json(user);
    } catch (error) {
      res.status(500).json({ error: error.message });
    }
  });

  // 删除用户
  app.delete('/users/:id', async (req, res) => {
    try {
      const user = await User.findByPk(req.params.id);
      if (!user) {
        return res.status(404).json({ error: 'User not found' });
      }
      await user.destroy();
      res.json({ message: 'User deleted' });
    } catch (error) {
      res.status(500).json({ error: error.message });
    }
  });

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

}).catch(error => {
  console.error('Unable to connect to the database:', error);
});

在以上代码中:

  1. 初始化了Express应用,并配置了body-parser中间件来解析JSON请求体。
  2. 配置了Sequelize以使用SQLite数据库,并定义了一个User模型。
  3. 使用sequelize.sync()方法同步模型到数据库(如果数据库和表不存在,它们将被创建)。
  4. 定义了RESTful路由来处理对/users端点的GET、POST、PUT和DELETE请求。
  5. 启动了Express服务器,监听指定的端口。

        运行这个Node.js应用程序,并使用Postman或类似的工具来测试这些RESTful API端点。例如,你可以发送POST请求到/users端点来创建一个新用户,然后发送GET请求到/users端点来获取所有用户。


原文地址:https://blog.csdn.net/ch_s_t/article/details/143651259

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!