单线程的 Node.js 为了充分利用 CPU 的多核特性,采用了 cluster 模块,利用主从模式,生成与 CPU 核心数量相当的子进程,主进程捕获请求随机分配给子进程处理,并负责子进程的崩溃重启。进程与进程之间是不能共享数据的,如果把 Session 存储在内存里,存储在不同进程的内存中的 Session 将无法共享,Session 认证机制会出现问题。例如,用户 A 认证的过程是由进程 1 处理的,那么维持会话的 Session 将保存在进程 1 的内存数据中;用户 A 接下来的请求被分配给进程 2 处理,因为进程 2 没有处理过用户 A 的认证,没有维持这个会话的 Session,所以进程 2 会判断用户 A 并没有授权。这样用户 A 需要多次重复认证访问才能继续下去。
OnceDoc是一个高性能的、高度独立的企业内容(网盘)管理系统,底层技术完全自主实现。你仅需预先安装好NodeJS的运行环境,无需配置例如IIS、Tomcat、MySQL/SQLServer、环境变量之类的复杂依赖,解压即用。不需要您具备任何IT知识,,30秒即可完成安装,打造专属于您自己的网盘和在线文档编辑工具。
before函数提供了一种机制,可以在文件接收之前根据req.headers对文件进行验证(如大小、类型),return true 表示验证通并开始接收文件。在这里 before 中的回调函数会根据 req.headers 中的 content-length 判断上传的文件是否超出了尺寸限制(开发人员可以通过修改 if 语句中的常数改变文件上传尺寸上限,content-length 单位为 byte,1024 * 1024 即代表 1 MB),如果超出了,文件不会被上传,服务器返回错误信息;如果没有超出,函数返回值为 true,服务器继续执行 app.file 中的回调函数,将文件从临时地址转移到指定存储地址,文件上传到这里就完成了。
在互联网上, QueryString是地址的一部分, 其中包含着需要传给后台的数据,通常以?开始,以&号分割。在表单提交时,会默认以QueryString的形式向后台发送数据,OnceIO会将其存储在res.query对象上。
OnceVI 通过简单的控件拖拉和数据绑定即可显示条形码。基于条形码(Barcode)和二维码(Qrcode),由于其优良的特性在管理信息系统的设计中被广泛使用。目前广泛应用在企业内部管理、生产流程、物流控制系统方面。是报表系统中必不可少的功能特性这一。OnceVI支持直接显示条形码与二维码。只需要简单拖拉即可实现,
OnceIO 是一个自身功能极简,完全由路由、中间件和Handler构成的 web 开发框架:一个 OnceIO 应用本质上就是在调用各种中间件和Handler。
中间件是一个函数,它可以访问请求对象(request object (req)), 响应对象(response object (res)),并将应用的请求-响应循环传向下一个中间件。
一个应用的请求-响应循环如下图所示,由请求对象、响应对象、中间件和 handler 构成。
OnceAir顽石云盘自带储存空间,还支持外界储存设备拓展储存空间。在这里来说明一下储存管理。
OnceAir顽石云盘只需要连接电源和路由即可使用,拥有考勤功能,可以作为打卡机来使用,无需用户任何操作即可记录出勤信息。
传统打卡机一般通过指纹识别,人脸识别或芯片识别来实现打卡功能的,简单直观,但是缺点也很明显,统计繁琐,还需要与不同硬件接口对接,容易出现数据传输和兼容故障,可靠性较差,到最后往往只能作为门禁来使用。
不同于传统打卡机,用户在使用OnceAir时,会自动向数据库发送考勤信息。云盘能将时间信息进行整理,在云端自动生成考勤记录,导出并打印考勤报表。
路由器的设置方法大体上是一样的,设置的原理基本相同,路由器的登陆IP通常为192.168.1.1或者192.168.0.1,登陆密码一般默认admin,虽然操作界面有所不同,但是主要内容都是大同小异。这一篇博客说明一下类似腾达路由器的设置方法。