View on GitHub

catatan

Koleksi catatan programming. Disusun berdasarkan skala prioritas dan tingkat kesulitan

Persiapan

Untuk memperkecil perbedaan lingkungan kerja dan menghemat waktu, disarankan untuk menggunakan sistem operasi Ubuntu. (Lihat tautan berikut untuk cara penggunaannya: Cara Menggunakan Linux)

Semua intruksi instalasi command line panduan ini seharusnya berjalan dengan baik di atasnya.

Install Node.js

$ curl -sL https://deb.nodesource.com/setup_10.x -o nodesource_setup.sh
$ sudo bash nodesource_setup.sh 
$ sudo apt-get install -y nodejs

Cek hasil instalasi dengan perintah berikut.

$ node --version
v10.14.2
$ npm --version
6.4.1

Untuk sistem operasi lain, silahkan cek intruksinya di sini: https://nodejs.org/en/download/package-manager/

Node.js Hello World

Masuk terminal, lalu buat folder anoa dan masuk ke dalamnya. (Kamu juga bisa menggunakan nama selain anoa).

$ mkdir anoa && cd anoa

Kita akan membuat server paling sederhana. Buat file bernama index.js.

$ code index.js

Paste code berikut:

const http = require('http');

http.createServer(function (req, res) {
  res.end('Hello World!');
}).listen(3000);

Buka terminal lagi, dan jalankan web servermu dg perintah ini:

$ node index.js

Buka browser, visit http://localhost:3000, maka kamu akan melihat tulisan ‘Hello World’.

hello_world

Sedangkan kalau dilihat pakai curl

$ curl --include http://localhost:3000
HTTP/1.1 200 OK
Date: Sat, 22 Dec 2018 03:11:59 GMT
Connection: keep-alive
Content-Length: 12

Hello World!

Menjalankan Web Server dengan NPM

Buat file package.json dengan perintah berikut:

$ npm init -y

Jika kamu buka file package.json, hasilnya seperti ini:

{
  "name": "anoa",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

Edit file package.json dengan command berikut:

$ code package.json

Update menjadi seperti ini:

{
  "name": "anoa",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "node index.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

Jalankan web server dengan command ini:

$ npm start
> anoa@1.0.0 start /Users/yanu/Documents/learn-nodejs/anoa
> node index.js

Deploy ke Zeit Server

Pastikan kamu sudah install tool Git dan Now serta sudah terdaftar di Github dan Zeit.

Buka terminal. Masuk ke terminal zeit dengan perintah berikut:

$ now login

Kamu akan diminta memasukkan email. Masukkan yang sudah terdaftar sebelumnya.

> Enter your email: awesome_email_ox790@gmail.com

Tekan enter, nanti akan muncul keterangan semacam ini:

> We sent an email to awesome_email_ox790@gmail.com. Please follow the steps provided
  inside it and make sure the security code matches Helpful Cougar.
⠧ Waiting for your confirmation

Buka email, dan ikuti intruksinya.

zeit

Setelah link kamu click, akan muncul tab baru dengan tampilan seperti ini:

zeit_confirmed

Dan tampilan di terminal now akan seperti ini:

✔ Email confirmed
> Ready! Authentication token and personal details saved in "~/.now"

Sekarang saatnya kita deploy. Ketik command berikut:

$ now

Hasilnya:

> WARN! Your project is missing a now.json file with a `version` property. More: https://zeit.co/docs/version-config
> Deploying ~/Documents/learn-nodejs/anoa under awesome_email_ox790@gmail.com
> Synced 4 files (76.04KB) [3s]
> https://anoa-nsz9elliu.now.sh/ [v2] [in clipboard] [2s]
┌ **        Ready               [758ms]
├── package.json
└── index.js
> Success! Deployment ready [4s]

Visit: https://anoa-nsz9elliu.now.sh/
Nanti akan tampak source-code index.js.

zeit_online

Tentu saja ini masih salah, karena harusnya tampilannya berisi ‘Hello World’ seperti di localhost.

Buat file now.json. File ini berisi konfigurasi aplikasi di zeit.

$ code now.json

Paste dan save kode berikut:

{
  "version": 2,
  "builds": [
    { "src": "index.js", "use": "@now/node-server" }
  ],
  "routes": [
    { "src": "/(.*)", "dest": "/index.js" }
  ]
}

Deploy lagi:

$ now
> Deploying ~/Documents/learn-nodejs/anoa under awesome_email_ox790@gmail.com
> Synced 1 file (79.88KB) [2s]
> https://anoa-7gf6ogot9.now.sh [v2] [in clipboard] [1s]
┌ index.js        Ready               [13s]
└── λ index.js (2.58KB) [sfo1]
> Success! Deployment ready [15s]

Sekarang, visit https://anoa-7gf6ogot9.now.sh.

zeit_hello_world