首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用 NextJS TailwindCSS 重构我博客

第一版:使用 Hexo Github pages 优点:重新部署只要花 5 分钟,内容管理本地 纯静态、免费; 缺点:依赖 Github,国内访问困难; 第二版:React + Antd + Mysql...而文章内容写完之后是通常不变,所以可以先将页面静态存储服务器上,这样就可以大大减小数据库压力。 getStaticProps 构建请求数据。...框架访问数据库,往往会需要一个 ORM 框架来帮我们管理数据层代码,而在 Node.js 社区中,sequelize、TypeORM框架都被广泛应用,而 prisma 却是一个新秀。...Prisma 支持 Mysql、Postgresql Sqlite, 访问官网我们可以很容易上手,也可以快速从老项目接入 虽然 Prisma TypeORM 解决了类似的问题,但它们工作方式却大相径庭...codemiror remark 自己写组件 ,这一版发现掘金 Markdown 编辑比较好用,就直接使用了bytemd, 底层都是使用了 remark rehype,支持任何框架,并且拥有丰富插件

2.2K20

使用 NextJS TailwindCSS 重构我个人博客

第一版:使用 Hexo Github pages 优点:重新部署只要花5分钟,内容管理本地 纯静态、免费; 缺点:依赖Github,国内访问困难; 第二版:React + Antd...{js,ts,jsx,tsx}']打包只会提取使用样式,让应用css最小化。 4、之前写了《使用 CSS variables Tailwind css实现主题换肤》也运用到了我博客中。...而文章内容写完之后是通常不变,所以可以先将页面静态存储服务器上,这样就可以大大减小数据库压力。 getStaticProps 构建请求数据。...Prisma 支持 Mysql、Postgresql Sqlite, 访问官网我们可以很容易上手,也可以快速从老项目接入 虽然 Prisma TypeORM 解决了类似的问题,但它们工作方式却大相径庭...codemiror remark 自己写组件 ,这一版发现掘金 Markdown 编辑比较好用,就直接使用了bytemd, 底层都是使用了 remark rehype,支持任何框架,并且拥有丰富插件

2.6K20
您找到你想要的搜索结果了吗?
是的
没有找到

一杯茶时间,上手 Koa2 + MySQL 开发

我们选择 TypeScript[4] 作为开发语言,数据库选用 MySQL,并使用 TypeORM[5] 作为数据库桥接层。...接下来部分,我们通过社区优秀组件来解决两个关键问题:路由和数据库,并演示如何结合 Koa 框架进行使用。 实现路由配置 由于 Koa 只是一个中间件框架,所以路由实现需要独立 npm 包。...数据库准备工作 首先,请安装配置好 MySQL 数据库,可以通过两种方式: 官网下载安装包,这里是下载地址[13] 使用 MySQL Docker 镜像 确保 MySQL 实例运行之后,我们打开终端...这里我们使用了三个装饰器: Entity 用于装饰整个类,使其变成一个数据库模型 Column 用于装饰类某个属性,使其对应于数据库表中一列,可提供一系列选项参数,例如我们给 password 设置了...select: false ,使得这个字段查询默认不被选中 PrimaryGeneratedColumn 则是装饰主列,它将自动生成 ❝「提示」 关于 TypeORM 所有的装饰器定义及其详细使用

3.5K40

NestJS、TypeORM PostgreSQL 项目开发和数据库迁移完整示例(译)

当 Node.js Server 项目越来越大数据和数据库整理规范是很难,所以从一开始就有一个好开发项目设置,对你开发项目的成功至关重要。...要在本地实现数据持久性,我们现在需要一个数据库服务器一个要连接数据库。一种方法是本地机器上设置一个 PostgreSQL 数据库服务器,但这样做不是很好。...将作为单例服务运行,启动加载配置并将它们提供给其他模块。...这样您将能够部署 / 启动服务器尽早地检测到这一点,而不是消费者使用 api 才发现问题。...因此,您在代码中更改了实体类, typeORM 会为你自动同步字段, 但是,一旦您数据库中有实际数据,后期打算修改字段类型或其他操作TypeORM 通过删除并重新创建数据库表来更改数据库,这意味着你极有可能丢失了表内数据

6K21

NestJS、TypeORM PostgreSQL 项目开发和数据库迁移完整示例(译)

当 Node.js Server 项目越来越大数据和数据库整理规范是很难,所以从一开始就有一个好开发项目设置,对你开发项目的成功至关重要。...要在本地实现数据持久性,我们现在需要一个数据库服务器一个要连接数据库。一种方法是本地机器上设置一个 PostgreSQL 数据库服务器,但这样做不是很好。...将作为单例服务运行,启动加载配置并将它们提供给其他模块。...这样您将能够部署 / 启动服务器尽早地检测到这一点,而不是消费者使用 api 才发现问题。...因此,您在代码中更改了实体类, typeORM 会为你自动同步字段, 但是,一旦您数据库中有实际数据,后期打算修改字段类型或其他操作TypeORM 通过删除并重新创建数据库表来更改数据库,这意味着你极有可能丢失了表内数据

5.3K30

NestJS、TypeORM PostgreSQL 项目开发和数据库迁移完整示例(译)

当 Node.js Server 项目越来越大数据和数据库整理规范是很难,所以从一开始就有一个好开发项目设置,对你开发项目的成功至关重要。...要在本地实现数据持久性,我们现在需要一个数据库服务器一个要连接数据库。一种方法是本地机器上设置一个 PostgreSQL 数据库服务器,但这样做不是很好。...将作为单例服务运行,启动加载配置并将它们提供给其他模块。...这样您将能够部署 / 启动服务器尽早地检测到这一点,而不是消费者使用 api 才发现问题。...因此,您在代码中更改了实体类, typeORM 会为你自动同步字段, 但是,一旦您数据库中有实际数据,后期打算修改字段类型或其他操作TypeORM 通过删除并重新创建数据库表来更改数据库,这意味着你极有可能丢失了表内数据

5K10

MyBatis从入门到多表关联

dataSource: Mybatis框架提供了三个数据源类型:UNPOOLED、POOLEDJNDI。 UNPOOLED: ​ 配置此数据源类型后,每次被请求时会打开关闭连接。...poolTimeToWait 如果获取连接花费时间较长,它会给连接池打印状态日志并重新尝试获取一个连接(避免误配置情况下一直处于无提示失败),默认值:20000毫秒,即20秒。...可以被设置成匹配具体数据库连接超时时间,来避免不必要侦测,默认值:0(表示所有连接每一刻都被侦测,只有poolPingEnabled属性为true适用) JNDI: 此数据源可以EJB或应用服务器等容器中使用...fetchSize 这是一个给驱动建议,尝试让驱动程序每次批量返回结果行数等于这个设置默认值为未设置(unset)(依赖驱动)。...select:指定引入嵌套查询子SQL语句,该属性用于关联映射汇总嵌套查询。 fetchType:指定在关联查询是否启用延迟加载。(fetchType有lazyeager两个属性

28720

使用NestJs、GraphQL、TypeORM搭建后端服务

我们先来TypeORM相关依赖添加到项目,依赖包括三部分,分别是NestJs支持TypeORM依赖包@nestjs/typeormTypeORM本身typeorm数据库支持MySQL。...host:数据库连接host port:数据库连接port username:数据库管理员名称 password:数据库管理员密码 database:数据库名称 synchronize:指示是否每次应用程序启动自动创建数据库架构...logging:日志 entities:要加载并用于此连接实体。接受要加载实体类目录路,为一个数组。...,使用方式@Column('varchar', { length: 500, unique: true }) PrimaryGeneratedColumn:主键装饰器,一个字段声明为主键,对应数据库表字段主键...Field:声明一个属性,这个属性属于ObjectType进行API查询时候将会用于解释一个字段,它对类一个属性进行装饰,使用方式:@Field。

6.5K10

混搭 TypeScript + GraphQL + DI + Decorator 风格写 Node.js 应用

这意味着每次开发新应用都得重新来一遍 —— 这就跟前端平时切页面一样,重复劳动多了之后就内心还是比较烦,甚至有抗拒心理。...数据库 ORM 首先我们需要解决数据库相关技术选项,这里说技术选型是指 ORM 相关技术选型(数据库固定使用 MySQL),选型基本原则是能力强大、用法简单。...其次, Midway 配置文件中指定数据库连接配置: // src/config/config.default.ts export const typeorm = { type: 'mysql...3.2 数据库操作 数据库连接上之后,就可以直接使用 ORM 框架进行数据库操作。...不同于现有的所有其他 JavaScript ORM 框架TypeORM 支持 Active Record Data Mapper 模式(我这次写项目中,使用是 Active Record

3.2K20

学完这篇 Nest.js 实战,还没入门来锤我!(长文预警)

底层,Nest 构建在强大 HTTP 服务器框架上,例如 Express (默认),并且还可以通过配置从而使用 Fastify !...监听端口号可以自定义, 如果3000端口被其他项目使用,可以更改为其他端口号 因为我3000端口有别的项目在用, 所以修改成:9080,重新启动项目 我们打开浏览器访问http://localhost...typeORM操作数据库, 首先我们要安装以下依赖包: npm install @nestjs/typeorm typeorm mysql2 -S 官方提供了两种连接数据库方法, 这里分别介绍一下:...TypeORM提供了多种连接方式,这里再介绍一下使用ormconfig.json方式 方法2 根目录下创建一个ormconfig.json文件(与src同级), 而不是配置对象传递给forRoot(...entities: [PostsEntity, UserEntity], }),] 就是用到哪些实体, 就逐一连接数据库去导入,缺点就是麻烦,很容易忘记~ 方式2:自动加载 TypeOrmModule.forRoot

12K42

学完这篇 Nest.js 实战,还没入门来锤我!(长文预警)

底层,Nest 构建在强大 HTTP 服务器框架上,例如 Express (默认),并且还可以通过配置从而使用 Fastify !...监听端口号可以自定义, 如果3000端口被其他项目使用,可以更改为其他端口号 因为我3000端口有别的项目在用, 所以修改成:9080,重新启动项目 我们打开浏览器访问http://localhost...typeORM操作数据库, 首先我们要安装以下依赖包: npm install @nestjs/typeorm typeorm mysql2 -S 复制代码 官方提供了两种连接数据库方法, 这里分别介绍一下...TypeORM提供了多种连接方式,这里再介绍一下使用ormconfig.json方式 方法2 根目录下创建一个ormconfig.json文件(与src同级), 而不是配置对象传递给forRoot(...entities: [PostsEntity, UserEntity], }),] 复制代码 就是用到哪些实体, 就逐一连接数据库去导入,缺点就是麻烦,很容易忘记~ 方式2:自动加载 TypeOrmModule.forRoot

9.2K11

再学习之MyBatis.

一、框架基本介绍 1、概念 支持普通SQL查询、存储过程高级映射,简化实现了Java 数据持久化层开源框架,主要流行原因在于他简单性和易使用性。...JNDI:MyBatis 从应用服务器向配置好 JNDI 数据源 dataSource 获取数据库连接。...3、typeAliases 如果没有设置typeAliases类型别名,对于resultTypeparameterType属性,我们需要使用JavaBean完全限定名。...所以当 MyBatis 发现属性类型属于上述类型,他会使用对应类型处理器设置到PreparedStatement 中,同样地,当从 SQL 结果集构建 JavaBean ,也有类似的过程。...1、INSERT id: 对应接口方法名 parameterType: 输入参数 useGeneratedKeys="true" :让数据库生成自增长列 keyProperty="属性名": 生成设置到其中一个输入对象属性

1.1K80

基于 Nest.js+TypeORM 实战,项目已开源,推荐!

我们TypeORM中如何实现user表info之间这种对一对关系呢?...@JoinColumn 必须在且只关系一侧外键上, 你设置@JoinColumn哪一方,哪一方包含一个relation id目标实体表外键。记住,不能同时二者entity中。...TypeORM处理“一对多”关系主键作为多外键,即@ManyToOne装饰属性;这样建表时有最少数据表操作代价,避免数据冗余,提高效率, 上面的实体关系会生成以下表: |...,publishTime是文章状态为发布publish才会添加相应, 这些字段都是新增/更新文章单独处理。...首先表明这个实现只是一个过渡方案,虽然实现简单, 但是有几个问题: 当有大量的人同时阅读这个内容时候,可能涉及到加锁问题 当流量较大,同时读取修改同一条数据, 对数据库压力来说压力很大 同一个人不停属性页面

10.6K41

有了 Prisma,就别用 TypeORM

synchronize: true 导致数据丢失​ synchronize 表示数据库结构是否代码保持同步,官方提及到请不要在生产环境中使用,但在开发阶段这也并不是一个很好做法。...: string } 当你 name 更改为 title ,会发现原有的 name 下数据全都丢失了!...因此针对数据库更新操作最正确做法是使用迁移(migrate)。 接入成本​ Nest 项目中,Prisma 接入成本远比 TypeORM容易许多。...应用程序代码中,您可以使用 Prisma Client 以类型安全方式读取写入数据库数据,而无需管理复杂模型实例开销。...总结​ 写这篇文章,我也是彻底 Nestjs 项目中由 TypeORM 迁移到 Prisma ,这期间给我最大变化就是极少代码量却又能实现强大功能。

1K21

MyBatis知识点

(类型处理器) MyBatis 设置预处理语句(PreparedStatement)中参数或从结果集中取出一个, 都会用类型处理器获取到以合适方式转换成 Java 类型。...如果获取连接花费了相当长时间,连接池会打印状态日志并重新尝试获取一个连接(避免误配置情况下一直失败且不打印日志),默认值:20000 毫秒(即 20 秒)。...MyBatis 会加载带有匹配当前数据库 databaseId 属性所有不带 databaseId 属性语句。...默认值为未设置(unset)(依赖数据库驱动) fetchSize 这是一个给驱动建议,尝试让驱动程序每次批量返回结果行数等于这个设置默认值为未设置(unset)(依赖驱动)。...这就使得获取嵌套结果集时候不至于内存不够用。默认值:false。 resultSets 这个设置仅适用于多结果集情况。

1.2K10

看了这篇文章,mybatis配置你肯定会了

33TYyg"/> 其中属性就可以整个配置文件中使用来替换需要动态配置属性。...,那么 MyBatis 按照下面的顺序来加载 properties 元素体内指定属性首先被读取。...有三种内建数据源类型(也就是 type=”[UNPOOLED|POOLED|JNDI]”): UNPOOLED– 这个数据源实现只是每次被请求打开关闭连接。...,如果获取连接花费相当长时间,它会给连接池打印状态日志并重新尝试获取一个连接(避免误配置情况下一直安静失败),默认值:20000 毫秒(即 20 秒)。...这可以被设置成匹配具体数据库连接超时时间,来避免不必要侦测,默认值:0(即所有连接每一刻都被侦测 — 当然仅当 poolPingEnabled 为 true 适用)。

42630

Mybatis---全局配置解析 --根据官方文档--常用

33TYyg"/> 设置好属性可以整个配置文件中用来替换需要动态配置属性 ...有三种内建数据源类型(也就是 type="[UNPOOLED|POOLED|JNDI]"): UNPOOLED– 这个数据源实现会每次请求打开关闭连接。...POOLED– 这种数据源实现利用“池”概念 JDBC 连接对象组织起来,避免了创建新连接实例所必需初始化认证时间。 这种处理方式很流行,能使并发 Web 应用快速响应请求。...,如果获取连接花费了相当长时间,连接池会打印状态日志并重新尝试获取一个连接(避免误配置情况下一直失败且不打印日志),默认值:20000 毫秒(即 20 秒)。...可以被设置为和数据库连接超时时间一样,来避免不必要侦测,默认值:0(即所有连接每一刻都被侦测 — 当然仅当 poolPingEnabled 为 true 适用)。

52430

【Django】 开发:静态文件,应用模型层

模型是数据交互接口,是表示操作数据库方法方式 Django ORM框架 ORM(Object Relational Mapping)即对象关系映射,它是一种程序技术,它允许你使用对象对数据库进行操作...'des'来预订没有默认;我们不能这样做(数据库需要填充现有行) 请选择修复: 1)现在提供一次性默认值(将对所有现有行设置此列) 2)退出,让我models.py中添加一个默认值 选择一个选项...: 错误原因 当对模型类新添加一个字段可出现该错误 原理是 添加新字段后,数据库不知道原来已有数据对于新建字段该如何赋值,所以新增字段,务必要添加 default 默认值。...处理方法: 选择 1 则会进入到 shell 中,手动输入一个默认值 退出当前生成迁移文件过程,自己去修改 models.py, 新增加一个 default=XXX 缺省 (推荐使用) 数据库迁移文件混乱解决办法...,属性=) obj.属性= obj.save() Django shell 使用 Django提供了一个交互式操作项目叫 它能够交互模式用项目工程代码执行相应操作 利用 Django

1.8K20

Django框架学习(三)

3.模板 MVT中T,template 3.0扩展 问:模板渲染过程是服务器端完成,还是客户端完成? 答:服务器。...default默认值,如果变量不存在则返回默认值。...4.数据库 ORM框架: 作用:模型类和数据表进行对应,通过面向对象方式进行数据库操作。 flask中SQLALchemy Django中自带ORM框架,可以直接进行使用。...选项 选项 说明 null 如果为True,表示允许为空,默认值是False db_column 字段名称,如果未指定,则使用属性名称。...AutoField选项使用 unique 如果为True, 这个字段表中必须有唯一默认值是False 外键 设置外键,需要通过on_delete选项指明主表删除数据,对于外键引用表数据如何处理

1.8K40
领券