egg 使用手記(一)

 

1. 文件加載規則

引用官方的說法:html

框架在加載文件時會進行轉換,由於文件命名風格和 API 風格存在差別。咱們推薦文件使用下劃線,而 API 使用駝峯。好比 app/service/user_info.js 會轉換成 app.service.userInfonode

框架也支持連字符和駝峯的方式數據庫

  • 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'app

*** 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:默認值
相關文章
相關標籤/搜索