Full Stack Challenge Part 4 | Serve

1 min read


oke sekaran kita langsung get datanya dan menampilkannya menggunakan index.js,, pertama kita buat models dulu dengan membuat foldernya…

mkdir models
cd models
touch channel.js
touch user.js
touch post.js

nah kemudian kita gunakan objection nya untuk memanggil data dari db,, saya akan contohkan satu yakni user.js

const { Model } = require('objection');

class User extends Model {
  static get tableName() {
    return 'user';
  }

  static get relationMappings() {
    const Channel = require('./channel');
    return {
      channel: {
        relation: Model.BelongsToOneRelation,
        modelClass: Channel,
        join: {
          from: 'user.channelId',
          to: 'channel.id',
        },
      },
    };
  }
}

module.exports = User;

setelah itu kita edit index.js nya…

const dbSetup = require('./db/db-setup');
const express = require('express');
const router = require('./db/models/user');
const User = require('./db/models/user');

// set up database with objection and knex
dbSetup();

const app = express();
app.use(express.json());

app.get('/user/:id', async (req, res, next) => {
    try{
        const { id } = req.params;
        const user = await User.query().findById(id);
        res.json(user);
    } catch (err){
        console.error(err)
        res.status(500).json(err);
    }
})

app.listen(8080, () => console.log('server is running on port 8080'));

kemudian kita running menggunakan command

npm run dev

maka akan running pada port 8080 dan buka localhost:8080/user/2, maka hasilnya adalah berupa json

{"id":2,"name":"user2","email":"user2@test.com","channelId":2,"created_at":"2021-10-30T19:06:08.924Z","updated_at":"2021-10-30T19:06:08.924Z"}

oke cukup dulu pembahasannya,, jadi kita sudah berhasil membuat koneksi dengan database, membuat migrations, membuat seed, dan memanggil datanya… oke kita lanjut di post selanjutnya ya cyaaaa.

Bima Sena

Leave a Reply

Your email address will not be published. Required fields are marked *