当前位置: 首页 > article >正文

定义模型生成数据表

1. 数据库配置

```js

import { Sequelize, DataTypes } from 'sequelize';

// 创建一个 Sequelize 实例,连接到 SQLite 数据库。

export const sequelize = new Sequelize('test', 'sa', "123456", {

    host: 'localhost',

    dialect: 'sqlite',

    storage: './blog.db'

});

```

2. 模型定义

```js

import { DataTypes } from 'sequelize';

import { sequelize } from '../db/sequelize.js';

export const Blog = sequelize.define("blog", {

    title: {

        type: DataTypes.STRING,

        allowNull: false

    },

    author: {

        type: DataTypes.STRING,

        allowNull: false,

    }

});

```

3. 实现增删改查操作:

  ```js

  let fn_getById = async (ctx, next) => {

      let id = ctx.params.id || 0;

      let blog = await Blog.findByPk(id);

      ctx.render('blogsAddOrEdit.html', { blog });

  }

  ```

  - 使用 `Blog.findByPk(id)` 查询指定 ID 的博客。

  - 将结果渲染到 `blogsAddOrEdit.html` 模板。

  ```js

  let fn_add = async (ctx, next) => {

      let obj = ctx.request.body;

      await Blog.create(obj);

  }

  ```

  - 使用 `Blog.create(obj)` 创建新的博客记录。

  ```js

  let fn_update = async (ctx, next) => {

      let id = ctx.params.id || 0;

      let obj = ctx.request.body;

      await Blog.update(obj, { where: { id: id } });

      ctx.body = '修改成功';

  }

  ```

  - 使用 `Blog.update(obj, { where: { id } })` 更新指定 ID 的博客。


 

  ```js

  let fn_del = async (ctx, next) => {

      let id = ctx.params.id || 0;

      await Blog.destroy({ where: { id: id } });

      ctx.body = '删除成功';

  }

  ```

  - 使用 `Blog.destroy({ where: { id } })` 删除指定 ID 的博客。







 


http://www.kler.cn/a/590599.html

相关文章:

  • rust 中的package、crate、module
  • python打印输出到文件
  • Go Ebiten小游戏开发:2048
  • Qt5.15.2实现Qt for WebAssembly与示例
  • 学习单片机需要多长时间才能进行简单的项目开发?
  • 04 1个路由器配置一个子网的dhcp服务
  • Java爬虫如何处理动态加载的内容?
  • RTSP/Onvif安防视频EasyNVR平台 vs.多协议接入视频汇聚EasyCVR平台:设备分组的区别
  • 在Android中,子线程可以更新UI吗
  • Vue相关面试题
  • 单片机开发资源分析的实战——以STM32F103C8T6为例子的单片机资源分析
  • 【Pycharm】Pycharm创建.py文件时自动生成文件头
  • 主流开源大模型能力对比矩阵
  • 【HDLBits】Module合集(练习均用两种方法解决)
  • 关于软航OFFICE文档控件软件在Chrome 133版本上提示扩展已停用的原因及处理办法
  • 【C++标准库类型】深入理解vector类型(1):从基础到实践
  • WebSocket生命周期和vue中使用
  • 基于 Prometheus + Grafana 监控微服务和数据库
  • Docker 容器指标搜集工具cAdvisor
  • 基于图神经网络(GNN)的节点分类实战:从GCN到GraphSAGE