PAAS-GCP App Engine NodeJS

Pengertian PAAS

Platform as a service (PaaS) adalah kategori layanan komputasi awan yang menyediakan platform yang memungkinkan pelanggan untuk mengembangkan, menjalankan, dan mengelola aplikasi tanpa kompleksitas membangun dan memelihara infrastruktur yang biasanya terkait dengan pengembangan dan peluncuran aplikasi.

Salah satu penyedia layanan ini adalah GCP(Google Cloud Platform). Pada tutorial kali ini kita akan mencoba program NodeJs dijalankan pada GCP.

Persiapan

  • Buat Project Baru pada Google Cloud Platform anda
  • Enable Billing

Buat App Engine Node.js

Download Contoh Program dari github

git clone https://github.com/GoogleCloudPlatform/nodejs-getting-started
cd nodejs-getting-started
ls
Sample from github

Kita akan menggunakan contoh 1-hello-world

cd 1-hello-world
1-hello-world

Inisialisasi gcloud

gcloud init
Pilih akun google anda
Izinkan
Terverifikasi
Pilih Project

Untuk men-deploy aplikasi, Anda harus membuat aplikasi di region:

gcloud app create

Pilih yang terdekat, misal saya memilih asia-east2(Hongkong)

Deploy Aplikasi

gcloud app deploy

Buka browser buka alamat deploy anda tertera saat selesai menjalankan perintah di atas

browser

Selain GCP masih banyak layanan yang menyediakan layanan PAAS diantaranya AWS, Alibaba, Microsoft Azure, dll.

NodeJs-#2-Auth JWT

Persiapan

  1. Install NodeJs
  2. Install MongoDB Community
  3. Buat Database MongoDB bernama mongoose_basics
Buat Project
mkdir -p jwt-node-auth/{controllers/users.js,models/users.js,routes/index.js,routes/users.js}
cd jwt-node-auth
touch utils.js && touch config.js && touch index.js
Struktur direktori:
root
├── .env
├── config.js
├── controllers
│   └── users.js
├── index.js
├── models
│   └── users.js
├── routes
│   ├── index.js
│   └── users.js
├── utils.js
Installasi Dependensi
npm init --yes
npm install express body-parser bcrypt dotenv jsonwebtoken mongoose  --save
npm install morgan nodemon cross-env  --save-dev
Fungsi Dependensi
  1. body-parser: This will add all the information we pass to the API to the request.body object.
  2. bcrypt: We’ll use this to hash our passwords before we save them our database.
  3. dotenv: We’ll use this to load all the environment variables we keep secret in our .env file.
  4. jsonwebtoken: This will be used to sign and verify JSON web tokens.
  5. mongoose: We’ll use this to interface with our mongo database.
Development Dependensi
  1. morgan: This will log all the requests we make to the console whilst in our development environment.
  2. nodemon: We’ll use this to restart our server automatically whenever we make changes to our files.
  3. cross-env: This will make all our bash commands compatible with machines running windows.
Membuat Enviroment Variabel(.env)

.env

JWT_SECRET=addjsonwebtokensecretherelikeQuiscustodietipsoscustodes
MONGO_LOCAL_CONN_URL=mongodb://127.0.0.1:27017/node-jwt
MONGO_DB_NAME=auth-with-jwts

config.js

module.exports = {
  development: {
    port: process.env.PORT || 3000
  }
}

index.js

require('dotenv').config(); // Sets up dotenv as soon as our application starts

const express = require('express'); 
const logger = require('morgan');
const bodyParser = require('body-parser');

const app = express();
const router = express.Router();

const environment = process.env.NODE_ENV; // development
const stage = require('./config')[environment];

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
  extended: true
}));

if (environment !== 'production') {
  app.use(logger('dev'));
}

app.use('/api/v1', (req, res, next) => {
  res.send('Hello');
  next();
});

app.listen(`${stage.port}`, () => {
  console.log(`Server now listening at localhost:${stage.port}`);
});

module.exports = app;

Referensi:

  1. https://scotch.io/tutorials/authenticate-a-node-es6-api-with-json-web-tokens
  2. https://grokonez.com/node-js/jwt/nodejs-jwt-authentication-nodejs-express-restapis-json-web-token-bcryptjs-sequelize-mysql

NodeJS-#1-Hello World

Persiapan

  1. Installasi NodeJS

Implementasi

Buat project

mkdir learning-hello-world
cd learning-hello-world

Membuat Program Berbasis Teks dengan Nodejs

buat script hello-world.js

console.log("Hello World!");

Simpan lalu jalankan :

node hello-world.js
hello-world.js

Membuat Webserver dengan Nodejs

buat script server.js

var http = require('http');

var server = http.createServer(function (req, res) {
    res.end("Hi, selamat datang di nodejs");
});

server.listen(8000);

console.log("server running on http://localhost:8000");

lalu jalankan

node server.js
server.js

buka web browser buka http://localhost:8000

http://localhost:8000