egg 使用手记(一)
1. 文件加载规则
引用官方的说法:
框架在加载文件时会进行转换,因为文件命名风格和 API 风格存在差异。我们推荐文件使用下划线,而 API 使用驼峰。比如 app/service/user_info.js 会转换成 app.service.userInfo。
框架也支持连字符和驼峰的方式
app/service/user-info.js=>app.service.userInfoapp/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的性能问题一例
说明:信息系统实践手记系列是系笔者在平时研发中先后遇到的大小的问题,也许朴实和细微,但往往却是经常遇到的问题.笔者对其中比较典型的加以收集,描述,归纳和分享. 摘要:此文描述了笔者接触过的部分信息系统 ...
随机推荐
- 差看windows上进程及线程
转自:http://blog.csdn.net/swgsunhj/article/details/29552027 下载process exlporer: http://technet.microso ...
- MarkDown初学者使用指南
换MarkDown编辑器了,突然发现自己不会,尴尬!所以顺便总结下Markdown的常用语法 标题 一级标题(格式:#+XXXXX) 二级标题(格式:##+XXXXXX) 三级标题(格式:###+XX ...
- 关于C/C++中main函数参数的学习
因为面对对象作业(2018.5.21)的要求,去学习了C/C++中main函数参数的意义,以及一些简单的使用(从命令行指令的接受),不给予赘述.(仅为个人拙见,还望看官指正) 首先,带有参数的main ...
- hdu 5920 Wool 思路
Wool Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Problem D ...
- NumPy切片和索引
NumPy - 切片和索引 ndarray对象的内容可以通过索引或切片来访问和修改,就像 Python 的内置容器对象一样. 如前所述,ndarray对象中的元素遵循基于零的索引. 有三种可用的索引方 ...
- iSCSI 在Linux下的模拟实验
5.iSCSI客户端(Initiator)配置 在Linux 2.6内核中提供了iscsi驱动,iSCSI 驱动(driver)使主机拥有了通过IP网络访问存储 的能力,驱动在主机(Initiat ...
- angularjs实现星星评分
angularjs实现星星评分 自定义指令 app.directive('myStars', function () { return { require : '?ngModel', // ?ngMo ...
- spring3: 对JDBC的支持 之 关系数据库操作对象化
7.3.1 概述 所谓关系数据库对象化其实就是用面向对象方式表示关系数据库操作,从而可以复用. Spring JDBC框架将数据库操作封装为一个RdbmsOperation,该对象是线程安全的.可复 ...
- RegularExpressions(正则表达式)
最近在不少地方用到了正则表达式,一直对这一块不太熟悉,今天写一些关于正则表达式的知识,一来是总结自己学的知识,二来今后忘记了可以及时的复习. 在java中想应用正则表达式带来的好处,必须先了解两个类, ...
- nt":false,"tarball":"http://registry.npm.taobao.org/babel-preset-stag
npm ERR! Unexpected end of input at 1:12777 npm ERR! nt":false,"tarball":"http:/ ...