egg 使用手记(一)
1. 文件加载规则
引用官方的说法:
框架在加载文件时会进行转换,因为文件命名风格和 API 风格存在差异。我们推荐文件使用下划线,而 API 使用驼峰。比如 app/service/user_info.js
会转换成 app.service.userInfo
。
框架也支持连字符和驼峰的方式
app/service/user-info.js
=>app.service.userInfo
app/service/userInfo.js
=>app.service.userInfo
Loader 还提供了 caseStyle 强制指定首字母大小写,比如加载 model 时 API 首字母大写,app/model/user.js
=> app.model.User
,就可以指定 caseStyle: 'upper'
。
*** controller、service 文件加载 小驼峰对应文件名而不是类名,model 文件加载 大驼峰对应文件名而不是类名 ***
2. egg-sequelize
'use strict';
const snowflake = require('node-snowflake').Snowflake; module.exports = app => {
const { STRING, INTEGER, DATE } = app.Sequelize; const SysUser = app.model.define(
'sys_user',
{
id: {
type: STRING(36),
primaryKey: true,
defaultValue: snowflake.nextId(),
},
createBy: { type: STRING(36), field: 'create_by' },
createDate: { type: DATE, field: 'create_date' },
updateBy: { type: STRING(36), field: 'update_by' },
updateDate: { type: DATE, field: 'update_date' },
enableFlag: { type: INTEGER, defaultValue: '1', field: 'enable_flag' },
rules: STRING,
userName: { type: STRING, field: 'user_name' },
passWord: { type: STRING, field: 'pass_word' },
notes: STRING,
userCode: { type: STRING, field: 'user_code' },
lastLoginTime: { type: STRING, field: 'last_login_time' },
},
{
timestamps: false,
freezeTableName: true,
underscored: false,
createdAt: 'create_date',
updatedAt: 'update_date',
}
); // underscored:不使用驼峰样式自动添加属性,而是下划线样式 [ createdAt => created_at ]
// timestamps:去除createAt updateAt
// freezeTableName : 使用自定义表名, return SysUser;
};
field:数据库字段名
defaultValue:默认值
egg 使用手记(一)的更多相关文章
- 随手记-egg入门
egg 入门 https://eggjs.org/zh-cn/intro/quickstart.html 1.建立项目目录2. npm i egg --save && npm i ...
- [小北De编程手记] : Lesson 05 玩转 xUnit.Net 之 从Assert谈UT框架实践
这一篇,本文会介绍一下基本的断言概念,但重点会放在企业级单元测试的相关功能上面.下面来跟大家分享一下xUnit.Net的断言,主要涉及到以下内容: 关于断言的概念 xUnit.Net常用的断言 关于单 ...
- Linux.NET实战手记—自己动手改泥鳅(上)
各位读者大家好,不知各位读者有否阅读在下的前一个系列<Linux.NET 学习手记>,在前一个系列中,我们从Linux中Mono的编译安装开始,到Jexus服务器的介绍,以及如何在Linu ...
- Linux.NET学习手记(7)
前一篇中,我们简单的讲述了下如何在Linux.NET中部署第一个ASP.NET MVC 5.0的程序.而目前微软已经提出OWIN并致力于发展VNext,接下来系列中,我们将会向OWIN方向转战. 早在 ...
- Linux.NET学习手记(8)
上一回合中,我们讲解了Linux.NET面对OWIN需要做出的准备,以及介绍了如何将两个支持OWIN协议的框架:SignalR以及NancyFX以OwinHost的方式部署到Linux.NET当中.这 ...
- 关于《Linux.NET学习手记(8)》的补充说明
早前的一两天<Linux.NET学习手记(8)>发布了,这一篇主要是讲述OWIN框架与OwinHost之间如何根据OWIN协议进行通信构成一套完整的系统.文中我们还直接学习如何直接操作OW ...
- U3D DrawCall优化手记
在最近,使用U3D开发的游戏核心部分功能即将完成,中间由于各种历史原因,导致项目存在比较大的问题,这些问题在最后,恐怕只能通过一次彻底的重构来解决 现在的游戏跑起来会有接近130-170个左右的Dra ...
- 信息系统实践手记5-CACHE设计一例
说明:信息系统实践手记系列是系笔者在平时研发中先后遇到的大小的问题,也许朴实和细微,但往往却是经常遇到的问题.笔者对其中比较典型的加以收集,描述,归纳和分享. 摘要:此文描述了笔者接触过的部分信息系统 ...
- 信息系统实践手记6-JS调用Flex的性能问题一例
说明:信息系统实践手记系列是系笔者在平时研发中先后遇到的大小的问题,也许朴实和细微,但往往却是经常遇到的问题.笔者对其中比较典型的加以收集,描述,归纳和分享. 摘要:此文描述了笔者接触过的部分信息系统 ...
随机推荐
- BeatSaber节奏光剑双手柄MR教程
一.物料准备: 1 显卡1060及以上的PC主机 2 HTC VIVE头盔一套(头盔直插显卡上的HDMI接口) 3 1080P摄像头一个(插USB3.0) 4 绿幕一套,能覆盖整个摄像头的可拍摄范围即 ...
- 20165101刘天野 2017-2018-2 《Java程序设计》 结对编程练习_四则运算(第二周)
20165101刘天野 2017-2018-2 <Java程序设计> 结对编程练习_四则运算(第二周) 一.需求分析 能随机生成n道四则运算题目,n由使用者输入 支持分数运算 支持多运算符 ...
- Your app uses or references the following non-public APIs的解决方案
之前接了一个旧的项目,代码混乱,年代久远,不得不吐槽一波,好不容易改完需求提交代码,说用到了non-public APIs,搞了好久终于找到地方了,下面是我的解决过程,让大家少走弯路: 下面的被驳回的 ...
- centos7 -lvm卷组
老忘,记一下 基本的逻辑卷管理概念: PV(Physical Volume)- 物理卷 物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘,也可以是raid设备. ...
- Spring -- 入门,装备集合,自动装配,分散装配,自定义编辑器
1. 概要 struts2:web hibernate:持久化 spring:业务层.管理bean的,容器.List Map Set. 体验spring: 1.创建java项目. 2.引入spring ...
- JNI_Z_07_方法的操作(没有String类型的参数)_参数的传递方式
1. 2.VC6(CPP)的DLL代码: #include<stdio.h> #include "jniZ_TjniMethod02.h" JNIEXPORT void ...
- html笔记(1)
hgroup 代替div figure figcaption 独立流内容 替代 dl mark 替代 span
- 英语发音规则---A字母
英语发音规则---A字母 一.总结 一句话总结:本文所有//的音标为英音音标,[]的音标为美音音标 1.A在开音节中发/eɪ/ [e]? age /eɪdʒ/ [edʒ] 年龄 ape /eɪp/ [ ...
- 利用大数据技术处理海量GPS数据
我秀中国物联网地图服务平台目前接入的监控车辆近百万辆,每天采集GPS数据7亿多条,产生日志文件70GB,使用传统的数据处理方式非常耗时. 比如,仅仅对GPS做一些简单的统计分析,程序就需要几个小时才能 ...
- linux下{}的用法
在touch {a,b}.txt时,同时创建了a.txt,b.txt两个文件 而touch {1..10}.txt,同时创建了10个txt文件,从1.txt到10.txt 在linux通配符中,{n, ...