https://github.com/piepin/fastify-objection-handlebars
Contoh aplikasi sederhana NodeJS, menggunakan library Fastify, Objection, Handlebars dan MySQL
https://github.com/piepin/fastify-objection-handlebars
demo example fastify handlebars mysql node-js nodejs objection orm
Last synced: about 1 month ago
JSON representation
Contoh aplikasi sederhana NodeJS, menggunakan library Fastify, Objection, Handlebars dan MySQL
- Host: GitHub
- URL: https://github.com/piepin/fastify-objection-handlebars
- Owner: piepin
- Created: 2019-10-22T04:03:29.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2019-11-05T06:39:24.000Z (over 6 years ago)
- Last Synced: 2024-01-18T14:44:25.922Z (about 2 years ago)
- Topics: demo, example, fastify, handlebars, mysql, node-js, nodejs, objection, orm
- Language: JavaScript
- Homepage:
- Size: 16.6 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
Awesome Lists containing this project
README
# Contoh Aplikasi NodeJS Sederhana
## Menggunakan library: Fastify, Objection, Handlebars dan MySQL
Ini adalah sebuah contoh aplikasi sederhana dengan NodeJS menggunakan library:
* Fastify - Web framework
* Objection - ORM
* Handlebars - Template engine
* MySQL - Database MySQL
Tujuan proyek ini untuk belajar membuat aplikasi NodeJS dengan terstruktur (metode MVC).
Library-library di atas saya gunakan karena cukup populer dan banyak direkomendasikan. Selain itu penggunaan nya relatif mudah dan sederhana.
### Database
Pada contoh ini saya menggunakan database MySQL, tetapi dapat diubah menggunakan database lain dengan mengubah parameter pada Objection. Lihat contoh menggunakan SQLite3 dan PostgreSQL pada file `connection.js`.
### Struktur Database
Silahkan buat dulu tabel pada database, dengan struktur sbb:
CREATE TABLE `users` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NULL,
`email` VARCHAR(45) NULL,
PRIMARY KEY (`id`));
CREATE TABLE `phone` (
`id` INT NOT NULL AUTO_INCREMENT,
`user_id` INT NOT NULL,
`phone_number` VARCHAR(15) NOT NULL,
`description` VARCHAR(50) NULL,
PRIMARY KEY (`id`),
INDEX `fk_phone_1_idx` (`user_id` ASC),
CONSTRAINT `fk_phone_1`
FOREIGN KEY (`user_id`)
REFERENCES `users` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION);
### Menginstal Aplikasi
> git clone https://github.com/piepin/fastify-objection-handlebars.git
> cd fastify-objection-handlebars
> npm install
### Struktur Folder
Setelah repo ini diclone, maka akan didapatkan struktur folder seperti ini:
.
├── connection.js
├── controllers
│ ├── PhoneController.js
│ ├── ResponseController.js
│ └── UserController.js
├── models
│ ├── PhoneModel.js
│ └── UserModel.js
├── package.json
├── public
│ ├── css
│ │ └── style.css
│ ├── img
│ └── js
├── Readme.md
├── routes.js
├── server.js
└── views
├── main.hbs
└── partials
├── head.hbs
└── nav.hbs
Ini merupakan contoh struktur folder yang bisa kita kembangkan lagi. Tetapi minimal di dalamnya ada folder `controllers`, `views`, `models`, `public`.
### Menjalankan Server
> node server.js
### Mengakses dari Client
Mencoba membaca data dalam format JSON. Sebelumnya jangan lupa untuk mengisi tabel users dan phone dengan sembarang data.
> curl http://127.0.0.1:3100/v1/users
> curl http://127.0.0.1:3100/v1/users/1
Mencoba template engine, buka di browser:
http://127.0.0.1:3100/v1/users/html
Tampilannya kira-kira seperti ini:

### Todo
* Folder static / public
* Integrasi Bootstrap
* Authentication