Simple is Happiness
Less is more
OnceIO
app.map路由映射与res.template模板映射
by wx_16020 keys OnceIO 1573727437590

 OnceIO提供一种机制,在不改变原有系统的情况下,可以复用原系统的filter(middleware)和handler,而不必修改原系统的编码。

app.map({
'/blog/user/:poster': '/userinfo/:poster'
})
OnceOA模块开发实例:用OnceIO和OnceDB搭建开源技术论坛
by wx_15926 keys OnceOA OnceIO OnceDB 二次开发 1575305390567

OurJS原有架构博客是基于文件系统的。优点是不需要配置数据库。所有文章在初始化时都会加载到内存中,能够支承大流量的访问。

但随着文章数量的增加,初始化启动时,硬盘IO读写会有一定的压力,再加上一些云服务器限制了IO频率。造成启动时间较慢。

这篇文章将介绍如何将OurJS博客移到到OnceOA架构。

模块安装教程:5秒为OnceDoc扩展新功能
by newghost keys OnceDoc OnceIO 1482560241765

OnceDoc是一个高性能的、高度独立的企业内容(网盘)管理系统。基于OnceIO实现了彻底的模块化,可对Web进行分布式存储和动态模块路由。前端、后端和数据库定义都集中存储在一个扩展包里,每一个扩展包都是一个功能独立的应用,只需通过添加/删除文件夹的方式就可实现功能删减,解压即用。任何人5秒钟即可实现模块的安装。通过模块扩展包,您可以将OnceDoc变成邮箱、流程管理、分享社区、资产管理、商城等系统。

在OnceIO(Node.JS)中用Redis储存Session
by newghost keys OnceIO OnceDB Node.JS 1483689857543

单线程的 Node.js 为了充分利用 CPU 的多核特性,采用了 cluster 模块,利用主从模式,生成与 CPU 核心数量相当的子进程,主进程捕获请求随机分配给子进程处理,并负责子进程的崩溃重启。进程与进程之间是不能共享数据的,如果把 Session 存储在内存里,存储在不同进程的内存中的 Session 将无法共享,Session 认证机制会出现问题。例如,用户 A 认证的过程是由进程 1 处理的,那么维持会话的 Session 将保存在进程 1 的内存数据中;用户 A 接下来的请求被分配给进程 2 处理,因为进程 2 没有处理过用户 A 的认证,没有维持这个会话的 Session,所以进程 2 会判断用户 A 并没有授权。这样用户 A 需要多次重复认证访问才能继续下去。

OnceIO(Node.js)模块拦截与注入:模板文件路由重定向与Model数据改写
by newghost keys OnceIO OnceDoc Node.JS 1483347221088

OnceIO 的模块路由和模板注入机制是与其它Web框架最主要的区别之一。软件系统时常需要针对不同的客户定制不同的功能。OnceIO的模块路由可以通过一个扩展包,对系统原有模板(Template)和填充数据(Model)进行重定向或复写。可以在不更改系统源代码的情况下,以非侵入的方式对系统进行深度定制和扩展。

OnceIO(Node.JS)模块开发:模块注册、模块路由、静态文件重定向以及如何开发与设计一个功能扩展模块
by newghost keys OnceIO OnceDoc Node.JS 1482651803957

OnceIOOnceDoc企业网盘的底层Web框架。可以对Web应用进行分布式模块化存储,并基于模块路由对http请求进行重定向。这样模块的前端、后端和数据库定义就可以集中存储在一个扩展包里,每一个扩展包都是一个功能独立的应用,只需通过添加/删除文件夹的方式就可实现功能删减,从而实现功能模块的自由组装。正是因为OnceIO的这种模块化机制,才可以让OnceDoc有能力扩展成邮箱、流程管理、分享社区、资产管理、商城等系统。这篇文章主要介绍如何开发一个简单的OnceIO模块,以及资源文件的模块路由规则。

NodeJS教程:基于OnceIO框架实现文件上传和验证
by newghost keys OnceIO Node.JS 1480420866766

before函数提供了一种机制,可以在文件接收之前根据req.headers对文件进行验证(如大小、类型),return true 表示验证通并开始接收文件。在这里 before 中的回调函数会根据 req.headers 中的 content-length 判断上传的文件是否超出了尺寸限制(开发人员可以通过修改 if 语句中的常数改变文件上传尺寸上限,content-length 单位为 byte,1024 * 1024 即代表 1 MB),如果超出了,文件不会被上传,服务器返回错误信息;如果没有超出,函数返回值为 true,服务器继续执行 app.file 中的回调函数,将文件从临时地址转移到指定存储地址,文件上传到这里就完成了。  

OnceIO(Node.JS)中Session简介与Cookie的关系和使用方法
by newghost keys OnceIO Node 1479871167070

HTTP 是一种无状态的协议,服务器单从网络连接上无从知道客户身份,这给交互式 Web 应用程序的实现带来了阻碍。Session 和 Cookie 一样,也是用来绕开 HTTP 的无状态性的手段之一,但与 Cookie 在客户端保存状态信息不同,Session 将用户的状态信息保存在服务器端。

当应用程序需要为某个客户端的请求创建一个 Session 的时候,服务器会首先检查这个客户端的请求里是否已包含了一个 Session 标识,即 SessionID。如果已包含一个 SessionID,则说明服务器为此客户端创建过 Session,服务器就会把这个 SessionID 对应的 Session 检索出来使用(如果检索不到,可能会新建一个);如果客户端请求不包含 SessionID,服务器就会为此客户端创建一个新的 Session 并且生成一个与此 Session 相关联的 SessionID。SessionID 的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串。这个 SessionID 将在本次响应中被返回给客户端保存(常放在 Cookie 中返回,客户端 Cookie 禁用时也可放在 URL 中)。

OnceIO(Node.JS)服务器端Cookie设置、添加、删除、显示及其实现原理
by newghost keys OnceIO Node.JS 1479562162288

HTTP 是一种无状态的协议,服务器单从网络连接上无从知道客户身份,这给交互式 Web 应用程序的实现带来了阻碍。Cookie 就是用来绕开 HTTP 的无状态性的手段之一。Cookie 实际上是一小段的文本信息。客户端(浏览器)向服务器发送请求,如果 服务器需要记录该用户状态,就会将 Cookie 放在响应头中向客户端浏览器发送。如果浏览器启用了 Cookie,就会把 Cookie 保存起来,并且在再次请求该网站时把请求的网址连同 Cookie 一同提交给服务器。服务器通过读取 Cookie 来辨认用户状态。服务器还可以根据需要修改 Cookie 的内容。

OnceIO(Node.JS)的网页(模板)的引用与深层嵌套
by newghost keys OnceIO Node.JS 1479130400491

OnceIO 提供将一个网页文件嵌套在另一个网页文件中的机制。文件嵌套与模板引擎无关,语法固定为 。

使用网页嵌套时,服务器需要时间加载所有被嵌套网页,因此用户第一次访问时浏览器可能无法显示被嵌套网页的内容,刷新后才能显示完整网页,OnceIO 内置的 preload 方法能解决这个问题。对当前目录下的 html 后缀的文件使用 preload 的示例代码如下:

 近期热门 - 点击最多
  1. Build 3465 更新SMB并添加NFS网络硬盘挂载,可实现多机异地容灾数据备份;添加内置媒体播放器;添加流程图设计模块以及各种安全性修复
  2. Backup文件数据备份系统模块简介
  3. Build3420磁盘存储管理更新及升级指南:优化多硬盘ARM NAS网络附加存储服务器支持
  4. 旺司OA免费搭建基于文件系统的企业wiki:用Markdown创建内部知识库和分享平台
  5. 旺司OA博客、Wiki搜索引擎优化:配置sitemap.xml,提高自然流量及多国语言配置
  6. 旺司OA永远免费企业流程管理软件系统简介:快速定制开发企业管理应用、生成在线Web报表
  7. Build 3284 旺司OA移动设备优化:支持手机端库存管理、清点盘库。添加扫码枪设备支持,微信扫描二维码、条形码录入。数据标签、字段查询功能
  8. 旺司OA搭建永久免费进销存软件,简单库存管理,商品标签,销售出库、采购入库单明细报表打印,针对小微淘宝卖家商户设计
  9. 旺司OA免费邮件营销系统.s2使用教程:用QQ邮箱群发个性邮件列表
  10. 用旺司OA搭建免费邮件发送营销系统:流程过滤函数发送HTML模板,模块打包二次开发实例

  支持论坛 - 最新回复
  1. Build 3465 更新SMB并添加NFS网络硬盘挂载,可实现多机异地容灾数据备份;添加内置媒体播放器;添加流程图设计模块以及各种安全性修复
  2. Build3420 数据管理更新:1添加数据备份模块 2改进多硬盘挂载时的容错机制 3各种易用性改进
  3. Backup文件数据备份系统模块简介
  4. Build3420磁盘存储管理更新及升级指南:优化多硬盘ARM NAS网络附加存储服务器支持
  5. Build3318:1)Wiki升级支持直接导出OnceDoc文件夹。2)Blog/Wiki更新SEO机制 3)添加Blog/wiki全文搜索 4)权限系统Bug fix
  6. 旺司OA博客、Wiki搜索引擎优化:配置sitemap.xml,提高自然流量及多国语言配置
  7. 旺司OA免费搭建基于文件系统的企业wiki:用Markdown创建内部知识库和分享平台
  8. Build 3284 旺司OA移动设备优化:支持手机端库存管理、清点盘库。添加扫码枪设备支持,微信扫描二维码、条形码录入。数据标签、字段查询功能
  9. 旺司OA永远免费企业流程管理软件系统简介:快速定制开发企业管理应用、生成在线Web报表
  10. 建议增加版本升级的log说明文件