引用官方的說法:html
框架在加載文件時會進行轉換,由於文件命名風格和 API 風格存在差別。咱們推薦文件使用下劃線,而 API 使用駝峯。好比 app/service/user_info.js
會轉換成 app.service.userInfo
。node
框架也支持連字符和駝峯的方式數據庫
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 文件加載 大駝峯對應文件名而不是類名 ***框架
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:默認值