MENU

RxSwift 之 Subject

Cover
上一篇文章介绍了 Observable 的基本概念和使用情形。但是大多数情形下,我们需要在应用运行时添加数据到 Observable 中并将其发送给订阅者。在这种需求场景下,我们就不得不使用 RxSwift 中另一种类型对象了- Subject 。

阅读全文

RxSwift 基础

在 iOS 开发过程中,我们几乎无时无刻都要面对异步事件的处理。例如,按键点击、数据保存、、音频后台播放、交互动画展示。这些事件并不具备特定时序性,甚至它们可能同时发生。

虽然 Apple 提供了通知、代理、GCD、闭包等异步机制,但是这些机制缺乏一个统一的抽象表述。另外,这些机制在处理共享的可变数据或状态时不够清晰简练。当然,这并不是说编写优雅的异步代码不现实。毕竟与其他平台相比 iOS 的异步机制还是很强大的。

幸运的是,我们能够通过 RxSwift 优雅的处理异步代码。

阅读全文

Express 实战(八):利用 MongoDB 进行数据持久化

Cover

毫无疑问,几乎所有的应用都会涉及到数据存储。但是 Express 框架本身只能通过程序变量来保存数据,它并不提供数据持久化功能。而仅仅通过内存来保存数据是无法应对真实场景的。因为内存本身并不适用于大规模的数据储存而且服务停止后这些数据也会消失。虽然我们还可以通过文件的形式保存数据,但是文件中的数据对于查询操作明显不友好。所有,接下来我们将学习如何在 Express 中通过 MongoDB 数据库的形式来对数据进行持久化存储。

本文包含的主要内容有:

  • MongoDB 是如何工作的。

  • 如何使用 Mongoose 。

  • 如何安全的创建用户账户。

  • 如何使用用户密码进行授权操作。

阅读全文

Express 实战(七):视图与模板:Pug 和 EJS

2017-08-23-cover.jpg
前面的内容大都是关于 Express 框架自身的内容,包括:Express 简介、工作原理、框架特点。在系列的最后,我们将把注意力放到 Express 框架周边工具链上。学习如果使用这些工具来拓展 Express 框架的功能。

首先,本文我们将会讨论视图模版引擎的使用。通过这些模版引擎我们能过动态的生成 HTML 内容。在前面我们已经使用过 EJS 并使用变量语法实现内容的注入。但是这些内容只是整个模版引擎部分的冰山一角。接下来,将会学习到多种内容注入方式、EJS,Pug 等模版引擎的特性。

阅读全文