Latihan MVC part 3

Tagged: 

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #203494
    riyanda.c.sinambela
    Participant

      index.js:
      const command = process.argv[2];
      const params = process.argv.slice[3];
      const TodoController = require(“./controller/TodoController”);

      switch (command) {
      case “show”:
      TodoController.show();
      break;
      case “add”:
      TodoController.add(params);
      break;
      case “delete”:
      TodoController.delete(params);
      break;
      case “update”:
      TodoController.update(params);
      // console.log(“command update”);
      break;
      default:
      TodoController.message(“Masukkan command yang valid”);
      // console.log();
      break;
      }

      TodoController.js
      const TodoModel = require(‘../model/TodoModel’);
      const TodoView = require(“../view/TodoView”);

      class TodoController {
      static show() {
      let todos = TodoModel.show();
      TodoView.show(todos);
      }

      static add(todo) {
      TodoModel.add(todo);
      }

      static delete(params) {

      }

      static update(params) { }

      static message(msg) {
      TodoView.message(msg);
      }
      }

      module.exports = TodoController;

      TodoModel.js:
      const fs = require(‘fs’);

      class TodoModel {
      constructor(id, task, status) {
      this.id = id;
      this.task = task;
      this.status = status;
      }

      static getTodos() {
      let data = fs.readFileSync(‘./data.json’, ‘utf8’);
      let parsedData = JSON.parse(data);
      let todos = parsedData.map(element => {
      const { id, task, status } = element;
      return new TodoModel(id, task, status);
      });
      return todos;
      }

      static show() {
      let parsedData = this.getTodos();
      return parsedData;
      }

      static add(todo) {
      console.log(todo);
      }
      }

      module.exports = TodoModel;

      TodoView.js:
      class TodoView {
      static show(params) {
      console.log(“Todo List: “);
      params.forEach(param => {
      const { id, task, status } = param;
      if (status) {
      console.log(${id}. [X] ${task})
      } else {
      console.log(${id}. [ ] ${task})
      }
      });
      }

      static message(msg) {
      console.log(msg);
      }
      }

      module.exports = TodoView;

      ketika run di terminal:
      node index.js add “Kerjakan Tugas”

      output: undefined

      #203550
      Coach Vincent
      Moderator

        baik terima kasih kak

      Viewing 2 posts - 1 through 2 (of 2 total)
      • You must be logged in to reply to this topic.
      Shopping cart0
      There are no products in the cart!
      Continue shopping