开始使用 Parse.js 创建博客:删除、注销和查看个人博客文章

开始使用 parse.js 创建博客:删除、注销和查看个人博客文章

在上一届会议中,您重构了整个博客系统。现在一切都已清理干净,您已准备好加速进行一些新的冒险。在本次会议中,我们将围绕路由器做更多的事情,并向我们的博客系统添加三个功能:删除、注销和单个博客视图。

1。删除

在第 6 部分中,我们介绍了编辑功能。您很可能还想删除您的一篇博客文章。有两个地方可以放置此函数:将其添加到 BlogsAdminView 中,或者将其发送到 URL 并在 Router 中处理。

我将向您展示路由器的方式。它更常用,并且使代码更加结构化。

第 1 步:添加 URL 模式

像往常一样,我们先添加一个 URL 模式:

routes: {'': 'index','admin': 'admin','login': 'login','add': 'add','edit/:id': 'edit','del/:id': 'del'}

第 2 步:删除链接

然后,更新管理页面中的链接:

Delete

第 3 步:del 函数

现在,让我们向 Router 添加一个新的 del 函数来处理它。这非常简单:使用我们从 URL 传入的 id 找到博客文章,并将其销毁。

尝试挑战自己,在不阅读我的代码的情况下编写它。此时您应该已经很好地掌握了 Parse.js。

del: function(id) {var query = new Parse.Query(Blog);query.get(id).then(function(blog){blog.destroy().then(function(blog){alert('Deleted!');})});}

请注意,您可以在此处使用 .then() 函数,而不是像我们之前那样传递对象:

query.get(id, {success: function(blog) {...},error: function(blog, error) {...}});

这是在 Parse.js 中添加回调函数的简单方法,使您的代码更干净、更具可读性。请访问 Parse.com 查看有关 Promise 的完整文档。

让我们对其进行测试运行,并仔细检查数据库以查看它是否正常工作。

开始使用 Parse.js 创建博客:删除、注销和查看个人博客文章

恭喜,它正在工作!

第 4 步:重定向回管理页面

如果你注意一下URL,你会发现,点击掉警告框后,URL仍然是/del/,而你刚刚删除的帖子仍然存在。我们希望在删除后将用户发送回管理页面,并且该页面应该刷新并反映他们刚刚所做的更改。

您可以通过重定向来实现所有这些:

del: function(id) {var self = this,query = new Parse.Query(Blog);query.get(id).then(function(blog){blog.destroy().then(function(blog){self.navigate('admin', { trigger: true });})});}

请注意,因为这次您从路由器内部调用 navigate,所以您可以将路由器存储为 self,然后调用 self.navigate()。

第 5 步:检查登录

最后,我们需要确保您是唯一可以删除您的博客帖子的人。让我们检查一下该功能的登录。这应该与 edit 函数相同。

del: function(id) {if (!Parse.User.current()) {this.navigate('#/login', { trigger: true });} else {...}}

2。注销

与删除一样,注销也可以由路由器处理。它还从添加 URL 模式开始:

routes: {...'logout': 'logout'},

Parse.js 中的注销功能本身非常简单。只需调用 Parse.User.logOut() ,然后重定向到 /login 页面:

logout: function () {Parse.User.logOut();this.navigate('#/login', { trigger: true });}

最后,让我们向 #admin-tpl 添加一个按钮:

      Logout

开始使用 Parse.js 创建博客:删除、注销和查看个人博客文章

如您所见,样式确实不是本教程的重点。您可以随意修复填充并根据需要设置样式。

3。单个博客视图

现在让我们继续开发一些新功能。

到目前为止,我们正在主页上显示整篇博客文章。虽然有些人确实喜欢这种风格,但大多数博客系统都支持预先提供片段摘要的想法,如果访问者点击文章,他们就可以在单独的页面上看到内容,周围可能还有一些评论区域。

我将在本次会议中引导您创建这个详细的单一博客视图,我们将在下一次会议中重点关注构建评论。

第 1 步:添加摘要列

首先,我们在博客表中添加一列作为摘要:

开始使用 Parse.js 创建博客:删除、注销和查看个人博客文章

第 2 步:在 WriteBlogView 中包含摘要

现在,让我们将其添加到 Blog.update() 函数中。您可以更改该函数以获取包含标题、摘要和内容的数据对象,以避免记住变量的顺序。

update: function(data) {// Only set ACL if the blog doesn't have it...this.set({'title': data.title,'summary': data.summary,'content': data.content,...}).save(null, {...});}

在#write-tpl中再添加一个作为摘要:

// Put this form-group in between the form-group for title and contentSummary{{summary}}

并相应地更改 WriteBlogView.submit() 函数:

submit: function(e) {...this.model.update({title: data[0].value, summary: data[1].value,content: data[2].value});}

现在,由于我们在模板中添加了一个新变量,因此我们需要在 WriteBlogView.render() 函数中为其指定一个默认的空值:

render: function(){...if (this.model) {...} else {attributes = {form_title: 'Add a Blog',title: '',summary: '',content: ''}}...}

如果您对内容使用 wysihtml5 插件,您会注意到之前我们的目标是所有 元素:

this.$el.html(this.template(attributes)).find('textarea').wysihtml5();

让我们为内容文本区域指定一个类,并仅使用 wysihtml5 插件来定位该类。

在#write-tpl中:

{{{content}}}

在WriteBlogView.render()函数中:

this.$el.html(this.template(attributes)).find('.write-content').wysihtml5();

现在可以使用了!

开始使用 Parse.js 创建博客:删除、注销和查看个人博客文章

第 3 步:在主页上显示摘要

使用新的撰写博客页面并添加一些带有摘要的博客文章,并提取摘要而不是#blogs-tpl中的内容:

{{#each blog}}{{title}}At {{time}} by {{authorName}}{{summary}}{{/each}}

第 4 步:添加 SingleBlogView 页面

花一点时间考虑一下如何添加 /blog/:id 页面来显示每篇博客文章的内容,并尝试自己完成。您现在应该能够自己完成这一切了!

但为了本教程的目的,让我给您快速演练:

为此页面添加新的 HTML 模板:

{{title}}

{{{content}}}

添加一个新的 BlogView 类,该类接受 blog 对象,并将其呈现在 #blog-tpl 中: p>

BlogView = Parse.View.extend({template: Handlebars.compile($('#blog-tpl').html()),render: function() { var attributes = this.model.toJSON();this.$el.html(this.template(attributes));}}),

在 BlogRouter 中添加新的 URL 模式:

routes: {...'blog/:id': 'blog',...}

并在 BlogRouter.blog() 函数中,通过 id 获取博客,渲染一个 blogView,并将其放入 $container:

blog: function(id) {var query = new Parse.Query(Blog);query.get(id, {success: function(blog) {console.log(blog);var blogView = new BlogView({ model: blog });blogView.render();$container.html(blogView.el);},error: function(blog, error) {console.log(error);}});}

最后,更新#blogs-tpl中的链接以链接到此页面:

{{#each blog}}{{title}}At {{time}} by {{authorName}}{{summary}}{{/each}}

尝试一下:

开始使用 Parse.js 创建博客:删除、注销和查看个人博客文章

如果您自己完成此操作,可加分。

结论

在本次会议中,您构建了很多内容:删除功能、注销功能和另一种新页面类型。如果您到目前为止一直在关注本教程系列,我认为您对数据库、模型、视图、模板和路由器如何协同工作有深入的了解。我希望您现在也开始喜欢构建 Parse.js 项目。请留下您的反馈并告诉我是否有帮助。

通过我们这次构建的这个单一博客文章页面,我们下次将添加评论部分。应该是一件有趣的事。敬请关注!

以上就是开始使用 Parse.js 创建博客:删除、注销和查看个人博客文章的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1551890.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
在HTML中,当媒体被用户或程序暂停时执行脚本?
上一篇 2025年12月21日 22:08:23
如何在HTML中添加元素的高度?
下一篇 2025年12月21日 22:08:38

相关推荐

  • 华为手机刷机教程(一步步教你如何强行解锁华为手机)

    华为手机刷机教程(一步步教你如何强行解锁华为手机)华为手机刷机教程(一步步教你如何强行解锁华为手机)华为手机刷机教程(一步步教你如何强行解锁华为手机)华为手机刷机教程(一步步教你如何强行解锁华为手机)

    在使用华为手机的过程中,有时我们可能会遇到一些问题,比如忘记了手机的解锁密码或者想要刷入其他rom。这时,我们就需要进行手机的刷机操作来解决问题。本文将以华为手机为例,详细介绍如何强行解锁华为手机。 段落 对于手机用户来说,刷机和解锁这两个词并不陌生,但它们究竟是什么意思呢?刷机指的是重新安装手机系…

    2026年9月29日 • 用户投稿
    000
  • 2025年一加游戏大会官宣:告别手机120Hz高刷时代

    2025年一加游戏大会官宣:告别手机120Hz高刷时代2025年一加游戏大会官宣:告别手机120Hz高刷时代2025年一加游戏大会官宣:告别手机120Hz高刷时代2025年一加游戏大会官宣:告别手机120Hz高刷时代

    今天,一加手机官方宣布,一加游戏大会 2025将在9月26日正式召开。 同时,一加表示,在此次游戏大会上,从2020年一加引领手游帧率突破120帧至今已有五年,一加将再次引领行业,彻底改写游戏帧率的规则,让游戏体验迎来五年以来最大的一次飞跃。 事实上,在昨天,一加就曾发布预热消息,称“有些数字,注定…

    2026年9月29日 • 用户投稿
    100
  • Out of range value for column ‘column_name’ at row 1 – 如何解决MySQL报错:数据超出行1的列范围

    Out of range value for column ‘column_name’ at row 1 – 如何解决MySQL报错:数据超出行1的列范围Out of range value for column ‘column_name’ at row 1 – 如何解决MySQL报错:数据超出行1的列范围Out of range value for column ‘column_name’ at row 1 – 如何解决MySQL报错:数据超出行1的列范围Out of range value for column ‘column_name’ at row 1 – 如何解决MySQL报错:数据超出行1的列范围

    如何解决MySQL报错:数据超出行1的列范围,需要具体代码示例 在使用MySQL进行数据库操作过程中,有时候会遇到报错信息:Out of range value for column ‘column_name’ at row 1,即数据超出行1的列范围。这个错误通常发生在插入…

    2026年9月29日 • 用户投稿
    000
  • Kotlin Native与JVM混合部署:通过JNI实现性能与跨平台兼顾的策略

    Kotlin Native与JVM混合部署:通过JNI实现性能与跨平台兼顾的策略Kotlin Native与JVM混合部署:通过JNI实现性能与跨平台兼顾的策略Kotlin Native与JVM混合部署:通过JNI实现性能与跨平台兼顾的策略Kotlin Native与JVM混合部署:通过JNI实现性能与跨平台兼顾的策略

    本文探讨了如何在单一JAR包中集成Kotlin Native多平台可执行文件与JVM回退实现,以兼顾高性能与极致跨平台能力。核心在于利用Java Native Interface (JNI) 作为桥梁,使JVM应用能动态加载并调用Kotlin Native编译生成的平台特定动态库,同时在原生库不可用…

    2026年9月29日 • 用户投稿
    100
  • 格子达知网查重入口在哪里—格子达毕业设计查重入口

    格子达知网查重入口在哪里—格子达毕业设计查重入口格子达知网查重入口在哪里—格子达毕业设计查重入口格子达知网查重入口在哪里—格子达毕业设计查重入口格子达知网查重入口在哪里—格子达毕业设计查重入口

    格子达查重入口为https://co.gocheck.cn/11653,提供论文重复率检测、AIGC风险评估及多轮自检功能,适配本科毕业设计全流程,支持Word格式直接上传,结果清晰标红便于修改。 格子达知网查重入口在哪里—这是不少网友都关注的,接下来由PHP小编为大家带来格子达毕业设计查重入口地址…

    2026年9月29日 • 用户投稿
    100
  • 腾讯Effidit的”句子润色”功能如何优化你的文章表达?

    腾讯Effidit的”句子润色”功能如何优化你的文章表达?腾讯Effidit的”句子润色”功能如何优化你的文章表达?腾讯Effidit的”句子润色”功能如何优化你的文章表达?腾讯Effidit的”句子润色”功能如何优化你的文章表达?

    effidit通过检查语法错误、优化词语选择、调整句子结构提升文章清晰度和准确性。1. 检查并修正语法错误;2. 用更专业的术语替换口语化表达;3. 调整句子结构增强流畅性。例如将“这个东西很好用”改为“该产品性能卓越”。使用时可先让effidit扫描全文,标出问题并提供建议,用户可根据需要选择采纳…

    2026年9月29日 • 用户投稿
    100
  • 贝壳找房App如何使用智能推荐功能_贝壳找房智能推荐房源技巧

    贝壳找房App如何使用智能推荐功能_贝壳找房智能推荐房源技巧贝壳找房App如何使用智能推荐功能_贝壳找房智能推荐房源技巧贝壳找房App如何使用智能推荐功能_贝壳找房智能推荐房源技巧贝壳找房App如何使用智能推荐功能_贝壳找房智能推荐房源技巧

    贝壳找房智能推荐依赖用户设置与行为数据,需完善预算、户型、区域等偏好以提升匹配精度;2. 开启App及手机系统通知权限可及时获取新房源提醒;3. 主动使用筛选、收藏功能有助于系统学习偏好,提高推荐相关性。 贝壳找房的智能推荐功能,主要是根据用户的浏览习惯、搜索记录和设置的偏好,自动推送可能感兴趣的房…

    2026年9月29日 • 用户投稿
    100
  • 小红书粉丝花钱要多少?我要指定粉丝类型,可以吗?

    小红书粉丝花钱要多少?我要指定粉丝类型,可以吗?小红书粉丝花钱要多少?我要指定粉丝类型,可以吗?小红书粉丝花钱要多少?我要指定粉丝类型,可以吗?小红书粉丝花钱要多少?我要指定粉丝类型,可以吗?

    在了解了小红书流量推荐机制和商业模式以后,越发的觉得粉丝数量的关键性了,更多的粉丝数量,能让我们获得更多的内容曝光,更强大的账号权重和更高的商业赚钱能力,可是粉丝数量不是一蹴而就的,尤其是小红书粉丝,涨难度真的很大,于是很多红薯博主就打算通过买粉丝的方式,快速提升粉丝数量,那么小红书粉丝买的话,要多…

    2026年9月29日 • 用户投稿
    100
  • 理解标准输出缓冲:Python、C、Java与Go的行为差异解析

    理解标准输出缓冲:Python、C、Java与Go的行为差异解析理解标准输出缓冲:Python、C、Java与Go的行为差异解析理解标准输出缓冲:Python、C、Java与Go的行为差异解析理解标准输出缓冲:Python、C、Java与Go的行为差异解析

    本文深入探讨了不同编程语言在标准输出(stdout)缓冲机制上的差异,特别是在输出连接到终端(TTY)或管道时。我们将解析Python和C在管道场景下默认采用块缓冲,导致输出延迟,而Java和Go则倾向于实时刷新。文章将提供代码示例,并指导如何控制和管理输出缓冲,以确保在各种环境下都能获得预期的程序…

    2026年9月29日 • 用户投稿
    100
  • Linux添加用户的完整指南

    Linux添加用户的完整指南Linux添加用户的完整指南Linux添加用户的完整指南Linux添加用户的完整指南

    Linux是一个自由开源的操作系统,广泛应用于服务器、嵌入式设备和个人计算机等领域。在Linux系统中,添加新用户是一个常见的操作,本文将详细解释如何使用命令来添加新用户,包括具体的代码示例。 一、添加新用户的命令在Linux系统中,添加新用户的命令主要使用useradd命令。useradd命令用于…

    2026年9月29日 • 用户投稿
    100
  • sublime怎样实现终端代码交互 sublimeREPL环境搭建的教程

    sublime怎样实现终端代码交互 sublimeREPL环境搭建的教程sublime怎样实现终端代码交互 sublimeREPL环境搭建的教程sublime怎样实现终端代码交互 sublimeREPL环境搭建的教程sublime怎样实现终端代码交互 sublimeREPL环境搭建的教程

    安装package control后通过命令面板安装sublimerepl插件;2. 通过菜单或快捷键运行代码或发送选中代码到repl;3. 配置快捷键(如f5运行文件,ctrl+b发送选中代码)提升效率;4. 遇到问题时检查解释器路径、环境变量、文件编码或快捷键冲突;5. 可结合terminus插…

    2026年9月29日 • 用户投稿
    200
  • 如何用API调用Midjourney生成图像 Midjourney API使用与参数详解

    如何用API调用Midjourney生成图像 Midjourney API使用与参数详解如何用API调用Midjourney生成图像 Midjourney API使用与参数详解如何用API调用Midjourney生成图像 Midjourney API使用与参数详解如何用API调用Midjourney生成图像 Midjourney API使用与参数详解

    调用midjourney api可通过第三方平台集成到应用中,具体步骤为:注册账号并获取api密钥、阅读接口文档、发送请求;基本流程包括发送“/imagine”命令、等待任务完成、获取图片链接;常用参数有prompt、aspect、style、version、chaos、seed;生成图片后需注意临…

    2026年9月29日 • 用户投稿
    100
  • 一机在手,全球畅游:用鸿蒙5轻松玩转境外热门城市Top5

    一机在手,全球畅游:用鸿蒙5轻松玩转境外热门城市Top5一机在手,全球畅游:用鸿蒙5轻松玩转境外热门城市Top5一机在手,全球畅游:用鸿蒙5轻松玩转境外热门城市Top5一机在手,全球畅游:用鸿蒙5轻松玩转境外热门城市Top5

    国庆与中秋双节叠加的超长假期即将到来,不少朋友已经按捺不住,计划走出国门、畅游世界——东京、首尔、巴黎、曼谷、莫斯科依旧是热门首选。然而,出境旅行虽令人期待,但“老三难”问题总是如影随形:担心没网络、害怕迷路、忧虑语言不通……不过这次我发现,鸿蒙5系统内置的几款原生应用,实测下来竟然把这三大痛点一一…

    2026年9月29日 • 用户投稿
    100
  • Win10下Edge浏览器地址栏出现热门站点取消方法

    Win10下Edge浏览器地址栏出现热门站点取消方法Win10下Edge浏览器地址栏出现热门站点取消方法Win10下Edge浏览器地址栏出现热门站点取消方法Win10下Edge浏览器地址栏出现热门站点取消方法

    近期,在使用windows 10系统时发现,当利用edge浏览器点击地址栏时,总是会弹出令人困扰的“热门站点”。为了解决这一问题,本文将向大家介绍如何在windows 10系统中移除edge浏览器地址栏中的热门站点。接下来是具体的操作步骤。 操作步骤: 启动Edge浏览器,找到设置界面中的相关选项(…

    2026年9月29日 • 用户投稿
    100
  • Sublime代码重构工具 Sublime自动化重构方案

    Sublime代码重构工具 Sublime自动化重构方案Sublime代码重构工具 Sublime自动化重构方案Sublime代码重构工具 Sublime自动化重构方案Sublime代码重构工具 Sublime自动化重构方案

    sublime text在代码重构中的核心局限性在于缺乏原生的深度语义理解和重构功能的碎片化;其优势在于极致速度、高度定制性及强大的多光标与正则查找替换能力。1.局限性:①缺乏深度语义分析,依赖简单文本替换易引入错误;②重构功能依赖第三方包,配置复杂且质量参差不齐。2.优势:①轻量快速,适合快速修改…

    2026年9月29日 • 用户投稿
    100
  • Table ‘table_name’ is marked as crashed and should be repaired – 如何解决MySQL报错:表被标记为崩溃,需要修复

    Table ‘table_name’ is marked as crashed and should be repaired – 如何解决MySQL报错:表被标记为崩溃,需要修复Table ‘table_name’ is marked as crashed and should be repaired – 如何解决MySQL报错:表被标记为崩溃,需要修复Table ‘table_name’ is marked as crashed and should be repaired – 如何解决MySQL报错:表被标记为崩溃,需要修复Table ‘table_name’ is marked as crashed and should be repaired – 如何解决MySQL报错:表被标记为崩溃,需要修复

    标题:Table ‘table_name’ is marked as crashed and should be repaired – 如何解决MySQL报错:表被标记为崩溃,需要修复,需要具体代码示例 文章正文: MySQL是一种功能强大的关系型数据库管理系统,…

    2026年9月29日 • 用户投稿
    100
  • 当书网官网最新入口_当书downbook登录页面查询

    当书网官网最新入口_当书downbook登录页面查询当书网官网最新入口_当书downbook登录页面查询当书网官网最新入口_当书downbook登录页面查询当书网官网最新入口_当书downbook登录页面查询

    当书网官网最新入口是http://www.dangshuw.com,该平台提供小说漫画阅读、听书下载、找书服务及热门榜单,具备简洁界面、个性推荐、夜间模式与互动社区功能。 当书网官网最新入口在哪里?这是不少网友都关注的,接下来由PHP小编为大家带来当书网官网最新入口,感兴趣的网友一起随小编来瞧瞧吧!…

    2026年9月29日 • 用户投稿
    100
  • 小红书花300元可以买到1000粉丝吗?(小红书市场价格明细)

    小红书花300元可以买到1000粉丝吗?(小红书市场价格明细)小红书花300元可以买到1000粉丝吗?(小红书市场价格明细)小红书花300元可以买到1000粉丝吗?(小红书市场价格明细)小红书花300元可以买到1000粉丝吗?(小红书市场价格明细)

    小红书花300元就可以买到1000粉丝,这个是真的吗?最近总是听到这样的说法,这个是商家的谣言,还是的确如此,目前小红书官方是没有公开付费购买粉丝这项服务,但也不代表花钱就不能涨到真人粉丝,不管是通过红薯加热推广,还是官方聚光投流,都是可以花钱投流涨粉的,从目前小红书粉丝成本来看,300元就能买到1…

    2026年9月29日 • 用户投稿
    000
  • 多语言对比:深入理解标准输出缓冲机制与TTY连接的影响

    多语言对比:深入理解标准输出缓冲机制与TTY连接的影响多语言对比:深入理解标准输出缓冲机制与TTY连接的影响多语言对比:深入理解标准输出缓冲机制与TTY连接的影响多语言对比:深入理解标准输出缓冲机制与TTY连接的影响

    本文深入探讨了Python、C、Java和Go等编程语言中标准输出(stdout)的缓冲机制。重点分析了在输出连接到终端(TTY)和管道/文件(非TTY)时,不同语言默认缓冲行为的差异及其背后的原因。文章解释了行缓冲与块缓冲的概念,并提供了控制输出刷新的方法,旨在帮助开发者更好地理解和管理程序输出,…

    2026年9月29日 • 用户投稿
    100
  • realmeV系列摄像头怎么设置以提升夜间拍摄效果?夜间模式的优化方法

    realmeV系列夜间拍摄的核心是启用夜间模式并结合专业模式手动调节ISO、快门速度、白平衡等参数,配合三脚架提升稳定性,避免高ISO和手持抖动,同时善用环境光、前景构图与后期处理,以获得细节丰富、噪点少、色彩真实的高质量夜景照片。 realmeV系列手机在夜间拍摄时想要获得更好的效果,核心在于充分…

    2026年9月29日
    100

发表回复

登录后才能评论
关注微信