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

 1 'use strict';
 2 const snowflake = require('node-snowflake').Snowflake;
 3 
 4 module.exports = app => {
 5   const { STRING, INTEGER, DATE } = app.Sequelize;
 6 
 7   const SysUser = app.model.define(
 8     'sys_user',
 9     {
10       id: {
11         type: STRING(36),
12         primaryKey: true,
13         defaultValue: snowflake.nextId(),
14       },
15       createBy: { type: STRING(36), field: 'create_by' },
16       createDate: { type: DATE, field: 'create_date' },
17       updateBy: { type: STRING(36), field: 'update_by' },
18       updateDate: { type: DATE, field: 'update_date' },
19       enableFlag: { type: INTEGER, defaultValue: '1', field: 'enable_flag' },
20       rules: STRING,
21       userName: { type: STRING, field: 'user_name' },
22       passWord: { type: STRING, field: 'pass_word' },
23       notes: STRING,
24       userCode: { type: STRING, field: 'user_code' },
25       lastLoginTime: { type: STRING, field: 'last_login_time' },
26     },
27     {
28       timestamps: false,
29       freezeTableName: true,
30       underscored: false,
31       createdAt: 'create_date',
32       updatedAt: 'update_date',
33     }
34   ); // underscored:不使用驼峰样式自动添加属性,而是下划线样式 [ createdAt => created_at ]
35   // timestamps:去除createAt updateAt
36   // freezeTableName : 使用自定义表名,
37 
38   return SysUser;
39 };
field:数据库字段名
defaultValue:默认值


  

猜你喜欢

转载自www.cnblogs.com/sephiroth-wzc/p/10106584.html
egg
今日推荐