在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)中安装、使用和更换doT、EJS、pug等模板引擎
by newghost keys Node.JS OnceIO 模板引擎 1477534323521

由于 doT.js 模板引擎的整体性能较优,OnceIO 采用 doT.js 作为默认模板引擎。在使用任何一种除了 doT.js 之外的模板引擎之前都需要先用 cmd 在项目文件夹安装这种模板引擎。以使用 Git Bash 安装 EJS 为例,使用的命令是:

$ npm install ejs  
在OnceDoc(NODE.JS)环境下使用HTML和OnceDB(redis)构造表单并存储用户提交的信息
by newghost keys OnceDB Node.JS OnceDoc 1476364037723

OnceDB是OnceDoc企业内容(网盘)管理系统的底层数据存储机制。它将Redis扩展增强成为一个分布式模式定义内存数据库,它将Redis从一个简单的健/值存储数据库,增强为支持索引和关系查询的模式(schema)数据库。在OnceDB中,数据模式将由具体应用而不是数据库来决定。通过OnceDB您可以自由动态定义数据库模式,或者在扩展模块中修改或扩展展已有的数据库存储模式。OnceDB即拥有内存数据库的强大性能,同时又具备强大的定制和扩展能力。

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)模块拦截与注入:模板文件路由重定向与Model数据改写
by newghost keys OnceIO OnceDoc Node.JS 1483347221088

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

OnceDB-支持全文搜索和关系查询的Redis内存数据库:驱动安装及使用教程
by newghost keys OnceDB Node.JS 1484546314790

我们的企业网盘OnceDoc和管理软件采用内存数据库Redis。Redis 是一个使用 C 语言编写的键值对存储数据库,体积小巧,性能优异,实施简单。很多大并发网站如Twitter、GitHub Weibo、Snapchat、Flickr、阿里等都将其用作SESSION存储及缓存的管理。出于性能的考虑 Redis 自带的命令一般不支持按值查找。但是企业软件又需要数据库有搜索、复杂条件查询以及聚合分析的能力。为了实现这些功能我们修改了Redis的源码。并创建了一个新的开源分支 OnceDB

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

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

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

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

OnceVI前后端分离的数据可视化报表工具简介
by newghost keys OnceVI 可视化 报表 1488769812558

企业管理软件在报表的应用上有大量需求,也存在大量困扰。OnceVI是一款使用Web和H5技术打造的前后端分离的报表开发工具。OnceVI支持直接在SVG矢量图上绑定数据,并通过JSON数据格式将后台数据呈现到前端报表界面。开发者可使用任何编程语言来编写JSON数据服务,OnceVI使用内存数据库来缓存数据,使用者不再需要考虑高并发下的性能问题。

可视化Web报表OnceVI中用户输入表单验证与提交
by siliviaw keys OnceVI 可视化 报表 1489741008058

本节主要介绍表单提交过程中,应用Filter工具箱实现表单内容验证与返回。并以app.validate和app.handle两个函数为例,展示表单与后台服务器信息交互过程。

app.validate: 在表单提交前对用户输入合法性做校验,返回错误信息则表示不合法
app.handle: 在表单提交后,对服务返回的信息做响应

服务器处理时间序列如下图所示:

logic diagram

 近期热门 - 点击最多
  1. Build 3789 文档同步客户端更新: 更新OnceDoc文档同步客户端(Mac/Windows版),完善小程序蓝牙搜索
  2. Build 3746: 优化Word、Excel文件支持; 添加设备搜索微信小程序; OnceIO性能优化
  3. Build 3505 OnceOA功能增强及报表打印等各种BUG修复,修复U盘中文乱码及安全性修复
  4. Build 3465 更新SMB并添加NFS网络硬盘挂载,可实现多机异地容灾数据备份;添加内置媒体播放器;添加流程图设计模块以及各种安全性修复
  5. Backup文件数据备份系统模块简介
  6. Build3420磁盘存储管理更新及升级指南:优化多硬盘ARM NAS网络附加存储服务器支持
  7. 旺司OA免费搭建基于文件系统的企业wiki:用Markdown创建内部知识库和分享平台
  8. 旺司OA博客、Wiki搜索引擎优化:配置sitemap.xml,提高自然流量及多国语言配置
  9. 旺司OA永远免费企业流程管理软件系统简介:快速定制开发企业管理应用、生成在线Web报表
  10. Build 3284 旺司OA移动设备优化:支持手机端库存管理、清点盘库。添加扫码枪设备支持,微信扫描二维码、条形码录入。数据标签、字段查询功能

  支持论坛 - 最新回复
  1. 在Linux上安装OnceDoc/OnceOA旺司免费企业管理驱动引擎知识管理套件,Debian/Ubuntu/CentOS/Redhat
  2. 系统盘就快满了,能不能提供底层linux的包和重新安装的方法语句。
  3. 我的ssh登陆后被劫持了广告,怎么恢复出厂设置
  4. 我的硬盘满了怎么恢复初始化啊
  5. 系统可以安装docker吗?或者安装易有云存储端
  6. SMB共享后,只读为否,但只能看,不能上传文件,也不能修改文件和建文件夹
  7. SMB共享地址变成了\\172.28.0.1,我实际上为10.144.239.30,这是怎么回事呢?
  8. SMB挂载共享目录出现mount error(2): No such file or directory Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) and kernel log messages (dmesg)
  9. onceoa如何修改默认的80访问端口
  10. smb创建共享目录后,服务无法运行,提示报错