Kris

上海闵行
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(NodeJS)中的服务器端缓存、模板预加载和静态资源文件的缓存和Gzip压缩机制
by newghost keys OnceIO 缓存 1478736514040

Web 资源在服务器和客户端(浏览器)之间的副本不仅能保存在客户端,也可以保存在服务器端。缓存会根据进来的请求将输出内容的副本保存在服务器内存中;然后,如果下一个请求是相同的 URL,且网页在这段时间内没有更新,服务器就不会再次从硬盘中获取内容,而是直接使用内存中缓存的网页副本,达到节约带宽,减少延迟的作用。

下面我们将介绍一些 OnceIO 中和服务器端缓存有关的函数和属性。

OnceIO(Node.JS)的路由(Routing)、路由方法和路由变量
by newghost keys OnceIO Node.JS 1478058875870

路由用于确定应用程序如何响应对特定端点的客户机请求,包含一个 URI(或路径)和一个特定的 HTTP 请求方法(GET、POST 等)。

每个路由可以具有一个或多个处理程序函数,这些函数在路由匹配时执行。

路由定义采用以下结构:

app.METHOD(PATH, HANDLER)
Node.JS的表单提交及OnceIO中接受GET/POST数据的三种方法
by newghost keys Node.JS OnceIO 1477920439145

在互联网上, QueryString是地址的一部分, 其中包含着需要传给后台的数据,通常以?开始,以&号分割。在表单提交时,会默认以QueryString的形式向后台发送数据,OnceIO会将其存储在res.query对象上。

NodeJS中的Middleware是什么?在OnceIO中创建和使用中间件
by newghost keys OnceIO Node.JS 1477095536747

OnceIO 是一个自身功能极简,完全由路由、中间件和Handler构成的 web 开发框架:一个 OnceIO 应用本质上就是在调用各种中间件和Handler。  

中间件是一个函数,它可以访问请求对象(request object (req)), 响应对象(response object (res)),并将应用的请求-响应循环传向下一个中间件。

一个应用的请求-响应循环如下图所示,由请求对象、响应对象、中间件和 handler 构成。

在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 需要多次重复认证访问才能继续下去。

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)的静态文件路由(app.static)
by newghost keys OnceIO Node.JS 1478162635403

为了提供静态资源,比如图像、CSS 文件和 JavaScript 文件等,可以将这些资源放在专门的文件夹中,然后用 app.static('folder') 将文件夹设置为 static 模式,使其中的资源可以直接被提供,而不参与中间件、Handler、会话、POST 和 Cookie,以达到节约带宽、减少延迟和降低服务器压力的目的。示例代码如下:

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

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

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

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

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

 近期热门 - 点击最多
  1. OnceDoc手机文件照片视频自动同步APP使用说明
  2. Build 4048: 存储管理升级添加LVM和BTRFS支持,RAID存储列阵;改进二次开发添加IDE智能提示;SystemD启动服务升级;BUG修复
  3. 通过Docker安装OnceDoc免费文档知识导图私有云笔记管理工具
  4. 在Mac OS上安装OnceDoc/OnceOA文档管理工具
  5. Build 3914[Beta]:添加MacOS-arm支持;添加OnceDoc手机文档同步客户端;添加vscode智能提示;更新加密算法;更新node版本
  6. Build 3789 文档同步客户端更新: 更新OnceDoc文档同步客户端(Mac/Windows版),完善小程序蓝牙搜索
  7. Build 3746: 优化Word、Excel文件支持; 添加设备搜索微信小程序; OnceIO性能优化
  8. Build 3505 OnceOA功能增强及报表打印等各种BUG修复,修复U盘中文乱码及安全性修复
  9. Build 3465 更新SMB并添加NFS网络硬盘挂载,可实现多机异地容灾数据备份;添加内置媒体播放器;添加流程图设计模块以及各种安全性修复
  10. Backup文件数据备份系统模块简介

  支持论坛 - 最新回复
  1. OnceOA 旺司企业管理私有云网盘搜索微信小程序使用说明
  2. OnceDoc手机文件照片视频自动同步APP使用说明
  3. Build 4048: 存储管理升级添加LVM和BTRFS支持,RAID存储列阵;改进二次开发添加IDE智能提示;SystemD启动服务升级;BUG修复
  4. 安装后启动没有登录界面
  5. 通过Docker安装OnceDoc免费文档知识导图私有云笔记管理工具
  6. 在Mac OS上安装OnceDoc/OnceOA文档管理工具
  7. Build 3914[Beta]:添加MacOS-arm支持;添加OnceDoc手机文档同步客户端;添加vscode智能提示;更新加密算法;更新node版本
  8. 云盘奔溃,如何重装系统?
  9. 在Linux上安装OnceDoc/OnceOA旺司免费企业管理驱动引擎知识管理套件,Debian/Ubuntu/CentOS/Redhat
  10. 系统盘就快满了,能不能提供底层linux的包和重新安装的方法语句。