@less-is-more/less-js
v1.4.39-0
Published
Fast develop kit for nodejs
Downloads
27
Readme
lim-js
介绍
快捷处理函数 nodejs、js。基本实现一行搞定。 [email protected]
安装使用
npm install @less-is-more/less-js
开始
- 生成数据库映射对象,可以使用 sequelize-automatic。具体请查看其官方 npm 说明。
- src下建立index.js文件,可参考
const { Router, Db, Redis } = require("@less-is-more/less-js");
const ApiController = require("./api/api-controller");
const process = require("process");
exports.init = (context, callback) => {
Db.init(
process.env.dbHost,
process.env.dbDatabase,
process.env.dbUser,
process.env.dbPassword
);
Redis.init(process.env.redisUrl, "default", process.env.redisPassword);
callback(null, "");
};
exports.handler = (req, res, context) => {
res.setHeader("content-type", "application/json");
const targets = {
"/api": new ApiController(),
};
Router.route(targets, req, res, context);
};
- 自动生成增删查改。在项目根的命令行执行,然后选择数据库表
less-js-gen
功能块
具体每个函数有具体说明每个参数的作用,以下不再重复。
Route
简单路由。通常放在函数入口 index 中。 Controller 里面需要执行 send 或者直接 return 一个值(值会自动转换文本,来符合 send 的标准)。
// ProductController为类实现
let targets = {
"/product": ProductController,
"/order": OrderController,
};
Router.route(targets, req, res);
Cache
缓存,有数据就返回,没有就调用函数并保存结果。 使用 redis 作为缓存,需要初始化 没有使用 annotation,在 mocha 测试快速。
const { Cache, Redis } = require(" @less-is-more/less-js");
// 初始化一次就可以,可以放公用
Redis.init("地址", "用户名", "密码");
let testFunction = (a, b) => {
console.log(a + b);
return a + b + "";
};
// 调用
const result = await Cache.get("test", 20, testFunction, testFunction, 1, 2);
Db
数据库暂时支持 mysql。 使用到 sequelize,对象和查询方法可以参考官方文档
const { Db } = require(" @less-is-more/less-js");
// 初始化一次就可以,可以放公用
Db.init("地址", "数据库", "用户", "密码");
// 简单查询
let data = await Db.find(Menu, { ordering: "1" });
// 带分页
let data = await Db.find(Menu, { ordering: "2" }, [["id", "desc"]], 2, 3);
// 指定返回列
let data = await Db.find(Menu, { ordering: "0" }, [["id", "desc"]], 1, 10, [
"id",
]);
// 添加,Product是生成对象,可以参考sequelize-automate
Db.add(Product, {
code: "test",
name: "产品",
});
// 修改
Db.update(Menu, { name: "test name2", ordering: "2" }, { id: 7 });
// 删除。限制了一条记录
Db.delOne(Menu, { code: "abc" });
Redis
简单封装。命令和官方一样。
const { Redis } = require(" @less-is-more/less-js");
// 初始化一次就可以,可以放公用
Redis.init("地址", "用户名", "密码");
// exec命令,调用官方命令,参数顺序一样
let result = await Redis.exec("get", "test");
Param
参数处理工具。检查参数,错误抛 Error,成功返回参数集合 基本沿用 validator 的方法,https://www.npmjs.com/package/validator check 方法新增 isNotEmpty, require。支持多个,空格隔开。默认 is 类的方法不含空
let params = await Param.checkParams([
["返回参数key", value, "isNotEmpty", "错误显示的内容"],
["返回参数key2", value2, "isNotEmpty", "错误显示的内容2"],
]);
// 检查是否空
Param.isBlank(value);
Sms
暂时支持阿里云的短信服务
// 初始化一次就可以,可以放公用
Sms.init("key", "secret", "token");
Sms.debug(true);
Sms.send("手机号码", { info: "短信参数" }, "签名", "短信编号");