@kavist/arjuna
Version:
Node.js Boilerplate, revisited
80 lines (61 loc) • 1.32 kB
Markdown
## Models
Database model (ORM)
---
**File: models/user/user.js**
```js
const { main: database } = require('../config/database');
const { SqlModel: Model } = require('arjuna');
class User extends Model
{
constructor()
{
super({
connection: database,
tableName: 'user',
protecteds: [
'password',
],
schema: {
id: {
type: Model.ORM.BIGINT.UNSIGNED,
autoIncrement: true,
allowNull: false,
primaryKey: true
},
username: {
type: Model.ORM.STRING,
},
password: {
type: Model.ORM.STRING,
},
created_at: {
type: Model.ORM.DATE,
},
updated_at: {
type: Model.ORM.DATE,
}
}
});
}
}
```
**File: providers/model-registrant.js**
```js
const User = require('./models/user/User');
module.exports = {
User: new User(),
};
```
**File: repositories/user/user.js**
```js
const { User: UserModel } = require('./providers/model-registrant');
const Repository = require('../Repository');
class User extends Repository
{
constructor()
{
super({ model: UserModel });
}
}
module.exports = User;
```