首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
一起学Deno
纪轻昀
创建于2023-07-12
订阅专栏
仿照nswbmw当年的《一起学Node.js》,手把手教你用Deno搭建一个博客,让你对Deno能有所熟悉,在合适的场景灵活使用它。
等 2 人订阅
共40篇文章
创建于2023-07-12
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Deno实战之Fresh篇(下)
本文首先教你如何调整创建的目录结构,如何使用AI将EJS转换为Preact,简化你的开发。详细介绍了Fresh框架的路由、中间件,以及之前版本的代码如何复用。又介绍了Twind与Tailwind的关系
Deno实战之Fresh篇(上)
本文使用Fresh创建了一个新的工程,对各个文件的作用进行了介绍。更多细节建议查看《Fresh官方文档》。
3.6 最后的晚餐
不出意外的话,本节将是本书最后一章,诸君且看且珍惜。 proxy代理 上节我们提到,当前的部署环节中,仍有可能制约我们后续迭代上线的因素。它会是什么呢? 你可曾注意我说,deno cache那一句的作
3.5 部署
我们的服务,需要稳定运行在服务器上,最好是个linux机器。这时就不能再用deno run mod.ts来启动了,因为我们断掉 SSH 连接后服务就终止了。 部署方式这里介绍2种。 pm2 pm2 是
3.4 自动化测试
通常来说,自动化测试分为端到端(E2E)和单元测试(unit)两种。前者需要有个真实的环境(前端是浏览器,后端是服务容器),也可以叫集成测试,而后者只需要代码层面的模拟测试即可。对二者不太熟悉的,可以
3.3 使用virtual优化
目前我们有4张表(集合),User是最基础的,其它3张表都有个userId字段表示与它的关联。 我们可以使用deno_mongo_schema的virtual功能进行优化。 代码 posts.sche
3.2 使用MongoDB重构
代码 删除src/model.ts和src/schema.ts。 import_map.json 在import_map.json中增加一条: 我们将使用deno_mongo_schema来重构代码,
3.1 安装MongoDB
MongoDB简介 MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB 是一个介于关系数据库和非关系数据库
3.0 阶段说明
第三阶段,我们将使用真实的数据库MongoDB,以及怎么做自动化测试,部署服务。 为什么要用数据库呢? 可能你会有这个疑问。 同样是持久化,前面我们的数据存储在localStorage中不是挺好的吗?
2.16 第二阶段小结
首页重定向 将上节的作业交待下,我们第二阶段就算结束了。 重定向很简单,只需要调用response的redirect方法就可以了。 修改src/app.controller.ts,把原来version
2.15 错误页面
代码 错误页面中,网络状态为404的特殊些,我们将单独开发一个页面,其它的错误把错误信息的堆栈打印出来即可。其实,程序如果足够健壮,是不应该让用户看到错误页的。 404.ejs 我们现在访问一个不存在
2.14 留言数量
代码 post-content.ejs 修改views/components/post-content.ejs,在浏览下面添加留言: posts.schema.ts 修改src/posts/posts
2.13 博客留言
留言页面 comments.ejs 新建views/components/comments.ejs post.ejs 修改views/post.ejs,引入刚才的ejs文件: 留言接口 comment
2.12 修改与删除博客
这里先说下上节作业,将博客按创建时间倒序显示。 修改posts.service.ts的formatPosts方法,在最后添加排序: 这时在页面上查看效果: 本节将处理博客的修改页面和删除操作。 修改页
2.11 所有博客
获取所有博客 posts.ejs 修改views/posts.ejs: posts.service.ts 修改src/posts/posts.service.ts,增加一个findAll方法: 所以,
2.10 博客详情页
博客详情页面 post-content.ejs 新建views/components/post-content.ejs,这是博客内容页,如果当前用户正是博客作者,则能看到编辑和删除两个按钮。 post
2.9 创建博客
创建页面 新建views/posts/create.ejs,内容如下: 修改src/posts/posts.controller.ts,添加一个create的GET页面接口。 在浏览器先登陆,再访问h
2.8 安全守卫
上节末我们提出一个问题: 按常理来说,我们可以在每个接口开始进行鉴权操作,只是这样就与业务代码深耦合了,有没有更好的办法呢? 当然有。 我们可以使用安全守卫(Guard)来保护接口。 看张摘自nest
2.7 登陆与登出
登陆页面 新建views/signin.ejs,比较简单,就是个包含了用户名密码的表单。 在src/user/user.controller.ts中增加signin的GET接口: 这时访问http:/
2.6 Schema属性参数
上节最后我们提到: 不提分布式等高端问题,当你关闭浏览器,再次打开页面,会发现原来登陆状态没有了,因为cookie中session-id只会保留在当前会话期间。 另一方面,我们后端的session并没
下一页