rapid-db
Version:
Rapid Database Interface
36 lines (31 loc) • 923 B
JavaScript
/**
* Copyright (c) 2017 Lucky Byte, Inc.
*/
const debug = require('debug')('db');
const moment = require('moment');
/**
* 生成一个新的无跳转 Token 并返回,token 长度 N13...19
*
* 参数
* db: 数据库对象,如果为空,则使用全局 _unique_db
* 返回
* 新的 Token,保证在系统内唯一
*
* Token 格式
* YYYYMMDDHHmmss + 4位序号
*/
const new_token = async (type, db) => {
db = db || _unique_db;
if (!db) {
throw new Error('数据库对象无效,检查是否已初始化数据库');
}
const results = await db.one(`
update rapid_serials set order_id = order_id + 1
returning order_id
`);
const order_id = '000000' + results.order_id;
const prefix = moment().format('YYYYMMDDHHmmss');
const suffix = order_id.substr(order_id.length - 4);
return prefix + suffix;
}
module.exports = new_token;