Home Adonis Cheatsheet
Post
Cancel

Adonis Cheatsheet

AdonisJS Cheatsheet

rpcx-api digunakan untuk server latihan API nantinya

1. Initial project

1
npm init adonis-ts-app@latest rpcx-api

2. install packages

1
npm install @adonisjs/lucid @Adonisjs/auth phc-argon2

paket lainnya:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Mysql >5; mariadb >=10
npm i mysql2

# postgresql
npm i pg

# Sqlite3
npm i sqlite3

# Oracle
npm i oracledb

# MSSQL
npm i tedious

3. Configure

- Configure Lucid

1
2
3
4
5
6
7
node ace configure @adonisjs/lucid

# CREATE: config/database.ts
# UPDATE: .env,.env.example
# UPDATE: tsconfig.json { types += "@adonisjs/lucid" }
# UPDATE: .adonisrc.json { commands += "@adonisjs/lucid/build/commands" }
# UPDATE: .adonisrc.json { providers += "@adonisjs/lucid" }

- configure env.ts

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// env.ts
import Env from '@ioc:Adonis/Core/Env'

export default Env.rules({
  HOST: Env.schema.string({ format: 'host' }),
  PORT: Env.schema.number(),
  APP_KEY: Env.schema.string(),
  APP_NAME: Env.schema.string(),
  DRIVE_DISK: Env.schema.enum(['local'] as const),
  NODE_ENV: Env.schema.enum(['development', 'production', 'test'] as const),

  MYSQL_HOST: Env.schema.string({ format: 'host' }),
  MYSQL_PORT: Env.schema.number(),
  MYSQL_USER: Env.schema.string(),
  MYSQL_PASSWORD: Env.schema.string.optional(),
  MYSQL_DB_NAME: Env.schema.string(),
})

create mysql database

1
2
mysql -u root
create database `rpcx-db`;

- configure .env

1
2
3
4
5
6
7
8
9
10
11
PORT=3333
HOST=0.0.0.0
NODE_ENV=development
APP_KEY=AgmGqITkUEu9JANAafY3gYfMkO2IWctW
DRIVE_DISK=local
DB_CONNECTION=mysql
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASSWORD=
MYSQL_DB_NAME=rpcx-db

- configure Auth

  • Configure Auth

    1
    
    node ace configure @adonisjs/auth
    

- git init

1
2
3
git init
git add .
git commit -m "Initial API, lucid, & auth"

Migration

Modif

run migration

1
node ace migration:run

Seed

make seeder

1
node ace make:seeder User
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# // database/seeder/user.ts
import BaseSeeder from '@ioc:Adonis/Lucid/Seeder'
import User from 'App/Models/User'

export default class UserSeeder extends BaseSeeder {

  public async run () {
    await User.createMany([
      {
        email: 'virk@adonisjs.com',
        password: 'secret',
      },
      {
        email: 'romain@adonisjs.com',
        password: 'supersecret'
      }
    ])
  }

}

run seed

1
2
node ace db:seed
# node ace db:seed --files './database/seeders/User.ts'
This post is licensed under CC BY 4.0 by the author.