lowkeys-jslib
v0.0.24
Published
jslib-创建一个简单易开发的node/web环境。
Downloads
11
Maintainers
Readme
本项目是一个前端开发支持库(后期增加用于支撑nodejs开发的运行库)
引用(前端共用方法)
trace
控制台输出
closeTrace
关闭控制台输出(执行后不再输出,用于正式环境关闭)
storage
本地储存
saveData(key, value)
getData(key)
removeData(key)
removeAll()
auth
token(登录校验)
setTokenKey(str)(设置本地存储键)
getToken()
setToken(token)
removeToken()
sm4
sm4(SM4分组密码算法)
setSm4Key(str)(设置sm4密码键)
encrypt(msg)(加密)
decrypt(msg)(解密)
base64
encode(input)(加密)
decode(input)(解密)
base64ToBlob
base64ToBlob(base) base64转Blob
sql
sql(数据储存)
open(base) base64转Blob
安装(当工具使用)
# 安装
$ npm run build
命令列表
jslib
$ jslib 查看usage
$ jslib init 初始化当前目录为开发目录 并选择适当模板以及自定义项目名称
因为架构采用了库模块分离的思想,所以开发目录不应是库目录,切忌在库目录做该操作。
以下功能优化中。。。
$ nodecli update 更新框架及本地工具库(可以在任意目录执行)
$ nodecli add router [routerName] 在开发目录新增一个router
$ nodecli add server [serverType] 在开发目录新增一个服务类型
$ nodecli add server [routerName] [serverType] 在开发目录新增一个服务类型
目前支持的服务类型有: http socket web redis mysql script express
$ nodecli add module [moduleName] 在开发目录新增一个开发模块
$ nodecli add bin [binName] 在开发目录新增一个可执行bin
$ nodecli start [routerName] [scriptPath] [scriptParam] 开始运行(可以在任意工程目录执行)
markthis
$ markthis <mdFileName> [htmlFilePath] 将MarkDown文件转换为html文件
zip
$ zip <zipFile/zipDir> [zipFilePath] 生成压缩包
openthis
$ openthis [port] 以当前目录作为webroot,启动一个web服务
启动服务
在工程目录中,运行以下命令
$ nodecli start [routerName] [scriptPath] [scriptParam]
scriptPath和scriptParam也可以在router文件中设置
Router文件配置说明
{
"name": "", //定义本服务进程的名称
"info": [...], //要启动的服务列表
"param": {} //启动参数
}
info是一个服务列表,所有需要启动的服务,其配置都放在info里
http服务
{
"name": "myServer", //服务名称
"type": "http",
"param": {
"port": 8001,
"header": { //请求默认返回的header
"Content-Type": "application/json;charset=utf-8",
"Access-Control-Allow-Origin": "{origin}",
"Access-Control-Allow-Credentials": "true",
"Access-Control-Allow-Methods": "PUT,POST,GET,DELETE,OPTIONS",
"Access-Control-Allow-Headers": "X-Requested-With"
},
"param": {
"method":"*" //请求默认的类型,该参数缺省,支持传入post/get
}
},
"module": { //用于指定开发模块,以键值对的形式指定对应的请求地址关联到哪个模块去处理
"@/global-test": "./src/module/test", //key表示请求地址路径, 值开发模块路径(@表示模块为全局共享的单例模块)
"/test": "./src/module/test"
},
"enabled": true //服务是否开启: true开启(默认) false不开启
}
socket服务
{
"name": "myServer", //服务名称
"type": "socket",
"param": {
"port": 8002, //socket服务端口
"path": "/test", //socket服务路径
"serveClient": false,
"pingInterval": 10000, //心跳间隔
"pingTimeout": 5000, //心跳超时
"cookie": false, //服务端cookie
"transports": ["websocket", "polling"], //传输方式
"requireLogin": { //是否强制登录验证 支持单个参数,支持直接写值
"timeout": 5000, //登录验证超时时间
"module": "/test/login" //登录模块路径 (连接后需要发送login及相关信息到服务端)
},
"redis": { //是否启用redis保存共享连接
"port": 6379,
"host": "127.0.0.1"
}
},
"module": { //用于指定开发模块,以键值对的形式指定对应的请求地址关联到哪个模块去处理
"/test": "./module/test"
},
"enabled": true
}
mysql服务
{
"name": "myServer", //服务名称
"type": "mysql",
"param": {
"host": "localhost", //服务地址
"user": "admin", //账号
"password": "123456", //密码
"database": "testdb" //库名
},
"enabled": true
}
redis服务
{
"name": "myServer", //服务名称
"type": "redis",
"param": {
"port": 6379, //服务端口
"host": "127.0.0.1", //服务地址
"monitor": "./log/redis/" //日志存放目录地址
},
"enabled": true
}
web服务
{
"name": "myWeb", //服务的名称
"type": "web",
"param": {
"port": 80, //服务端口
"webroot": "./webroot" //web目录地址(支持绝对路径)
},
"enabled": true
}
script服务
{
"name": "myScript", //服务名称
"type": "script",
"param": { //脚本默认执行参数
"path": "test.hello", //脚本默认执行的模块路径
"param": "billy" //脚本默认执行的模块的参数
},
"module": { //用于定义开发模块关联
"test": "./src/module/test" //对应param (注意开头不能有/)
},
"enabled": true
}