ejs文件
import models from ‘../models’;
import dayjs from “dayjs”;
import { RESULT_SUCCESS, RESULT_ERROR } from ‘../constants/ResponseCode’;
import { sqlAppent } from “../util/sqlAppent”;
//添加
export const add = async (param)=>{
await models.<%=tableName%>.create({
<% columns.forEach(item=>{ %>
item:param.<%=item%>,
<% })%>
})
return { code: RESULT_SUCCESS, msg: “添加成功” };
}
js代码
import fs from ‘fs’;
import path from ‘path’;
import Sequelize from ‘sequelize’;
import config from ‘@config/database’;
import ejs from ‘ejs’;
let sequelize = new Sequelize(config.managerServer.database, config.managerServer.username, config.managerServer.password, config.managerServer);
/**
- 自动生成service层
- @param {string} tableName 表名称
- @param {boolean} override 是否覆盖原文件
*/
export const autoCreateService = async (tableName, columns, override = false) => {
// 模板路径
const serviceTemplate = fs.readFileSync(path.resolve(process.cwd(), ‘app’, ‘template’, ‘server.ejs’)).toString();
// service 目录
const SERVICE_DIR = path.resolve(process.cwd(), ‘app’, ‘service’);
// 生成service的文件路径
let serviceFile = path.resolve(SERVICE_DIR, tableName + ‘.js’);
if (fs.existsSync(serviceFile)) {
console.log(“文件已存在”);
return;
}
// 查询表字段信息
let sql =SHOW FULL columns FROM lx_file
;
let data = await sequelize.query(sql, {
type: sequelize.QueryTypes.SELECT
});
let key = “”;
// 字段数据处理
data = data.map(item => {
if (item.Key == “PRI”) {
key = item.Field;
}
return item.Field;
});
columns = data;
// 根据模板渲染数据
let result = ejs.render(serviceTemplate, {
tableName: tableName,
columns: columns,
key: key
});
fs.writeFileSync(serviceFile, result);
console.log(“生成service成功”);
};