- Getting Started
- edpx-mobile v1.0.0
- rebas
- rider
- saber-ajax
- saber-cookie
- saber-dom
- saber-emitter
- saber-env
- saber-fastbutton
- saber-firework
- saber-firework v2.0.0
- saber-firework v2.0.0-beta.2
- saber-firework v2.0.0-beta.1
- saber-firework v2.0.0-alpha.2
- saber-firework v2.0.0-alpha.1
- saber-firework v1.0.0
- saber-firework v0.4.2
- saber-firework v0.4.1
- saber-firework v0.4.0
- saber-firework v0.3.2
- saber-firework v0.3.1
- saber-firework v0.3.0
- saber-firework v0.2.6
- saber-firework v0.2.5
- saber-firework v0.2.4
- saber-firework v0.2.1
- saber-firework v0.2.0
- saber-firework v0.1.0-beta.4
- saber-firework v0.1.0-beta.3
- saber-firework v0.1.0-beta.1
- saber-geo v0.1.0
- saber-lang
- saber-log v0.1.0
- saber-matchmedia
- saber-mm
- saber-promise
- saber-promise v2.1.0
- saber-promise v2.0.0
- saber-promise v2.0.0-beta.1
- saber-promise v2.0.0-alpha.3
- saber-promise v2.0.0-alpha.2
- saber-promise v2.0.0-alpha.1
- saber-promise v1.0.2
- saber-promise v1.0.0
- saber-promise v0.1.2
- saber-promise v0.1.2-beta.3
- saber-promise v0.1.2-beta.2
- saber-promise v0.1.2-beta.1
- saber-promise v0.1.1
- saber-promise v0.1.0
- saber-rainbow
- saber-router
- saber-router v2.0.0
- saber-router v2.0.0-beta.1
- saber-router v2.0.0-alpha.2
- saber-router v2.0.0-alpha.1
- saber-router v1.0.0
- saber-router v0.2.4
- saber-router v0.2.3
- saber-router v0.2.2
- saber-router v0.2.1
- saber-router v0.2.0
- saber-router v0.1.0
- saber-router v0.1.0-beta.5
- saber-router v0.1.0-beta.4
- saber-router v0.1.0-beta.3
- saber-router v0.1.0-beta.2
- saber-router v0.1.0-beta.1
- saber-run
- saber-scroll
- saber-storage
- saber-string
- saber-tap
- saber-uri
- saber-viewport
- saber-viewport v1.1.0
- saber-viewport v1.0.0
- saber-viewport v0.2.12
- saber-viewport v0.2.11
- saber-viewport v0.2.10
- saber-viewport v0.2.9
- saber-viewport v0.2.8
- saber-viewport v0.2.6
- saber-viewport v0.2.5
- saber-viewport v0.2.1-beta.7
- saber-viewport v0.2.1-beta.6
- saber-viewport v0.2.1-beta.5
- saber-viewport v0.2.1-beta.4
- saber-viewport v0.2.1-beta.3
- saber-viewport v0.2.1-beta.2
- saber-viewport v0.2.1-beta.1
- saber-viewport v0.2.0
- saber-viewport v0.1.0
- saber-widget
rebas v0.4.1
Node runtime for Saber,base on Express
Saber 的 node 运行环境,让您在享受 SPA 高內聚、低耦合开发方式的同时拥有优秀的首屏呈现速度与良好的 SEO 。
How
Rebas 使首屏渲染由服务器端完成,极大地降低了 SPA 首屏的白屏时间并解决了 SEO 问题。借助于 node ,服务器端的渲染逻辑不用额外开发,只需要对现有的 Saber 应用进行小幅修改就能让已有的逻辑同时运行在客户端与服务器端。
Saber 所有的基础组件都进行了同构升级,确保能同时运行在客户端与服务器端。对于业务开发只需聚焦业务逻辑,不用特别关注运行平台,剩下的一切就交给 Saber 与 Rebas 吧~
Usage
/** * @file app.js 应用启动脚本 */ var app = require('rebas'); // 加载路由配置 app.load(require('./lib/config')); // 启动服务 app.start();
$ node app.js
更多详情请参考 Getting start ,从零开始快速构建同构应用
API
Methods
start(port, options)
启动服务
- port
{number=}
端口号,默认为8000
- options
{Object=}
配置项
rebas
由 saber-mm 提供 MVP
的实现,Presenter
、View
、Model
相关的配置与 API 请参考 saber-mm 的说明文档
load(routes)
加载路由配置
- routes
{Object|Array.<Object>}
路由配置信息,必须包含以下两个必填字段:- path
{string|RegExp}
路径,必须是以/
开头的有效路径字符串或者正则表达式,字符串可以包含以:
开头的参数化路径,例如:/detail/:id
- action
{string|Object}
Presenter 配置信息,如果是字符串则表示对应文件的路径(为啥叫action
而不是presenter
,嗯… 历史原因…)
- path
get(name)
获取存储在 配置文件夹
下的 JSON
配置信息,配置文件夹
的默认路径为 config
- name
{string}
配置文件名称,不包含.json
后缀名 - return
{*}
配置信息
例如需要获取 config/app.json
文件中的配置信息可以通过如下方式获得:
var app = require('rebas'); // 获取 `config/app.json` 中的配置信息 app.get('app');
可以通过添加应用启动的参数来修改默认的 配置文件夹
路径,例如:
$ node app.js config-dev
此时通过 get
获取的配置信息就来源于 config-dev
文件夹,可以通过此种方式在多种不同环境、不同配置下自由切换
before(middleware)
添加在执行页面逻辑前执行的中间件
- middleware
{Function}
中间件,rebas
基于 express 提供 Web 服务,兼容 express middleware,具体请参考 express API
after(middleware)
添加在页面逻辑执行完成后执行的中间件
- middleware
{Function}
中间件
use(plugin)
使用插件
- plugin
{Object}
插件对象,插件必须包含rebas
方法用于初始化,具体的方法说明如下:- rebas
{function(app, ...*)}
插件初始化方法,第一个参数为rebas
实例,其余参数为调用use
方法时传入的剩余参数
- rebas
setSyncData(name, value)
设置需要前后端同步的数据,设置后前端的运行框架 saber-firework 可以通过其 API 获取到对应的数据
- name
{string}
数据名称 - value
{*}
数据值,建议为number
、string
类型,或者其它任何可以被JSON.stringify
方法序列化的数据类型
Config
以下所有的配置信息都是以 JSON
文件的形式存储在 配置文件夹
下,配置文件夹
的默认路径为 config
log
日志配置文件 log.json
,rebas
使用 log4js-node 提供日志服务,相关配置信息更详细的说明请参考 log4js-node 的配置说明,默认的配置信息如下:
{ // 是否将日志输出到标准输出(stdout) console: false, // 日志等级 level: 'INFO', // 日志类型,默认为按时间分割的日志文件 type: 'dateFile', // 日志默认存储在 `log` 目录下,名为 `rebas.log` filename: 'log/rebas.log', // 日志以小时级别切分 patter: '-MM-dd-hh', alwaysIncludePattern: false, // 日志输出格式 layout: { type: 'pattern', pattern: '[%d] [%x{pid}] [%p] - %m', tokens: { pid: process.pid } } }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论