Menulis layanan web dengan Node.js

Panduan ini menunjukkan cara menulis layanan web Node.js untuk dijalankan di lingkungan standar App Engine. Untuk mempelajari lebih lanjut runtime Node.js dan cara kerjanya, lihat Lingkungan Runtime Node.js.

Sebelum memulai

Poin utama

  • Anda dapat menggunakan dependensi dengan mencantumkannya di file package.json. Lihat Menentukan Dependensi untuk mengetahui informasi selengkapnya.
  • App Engine memulai aplikasi Anda dengan menjalankan npm start.
  • Server Anda harus memproses port yang ditentukan oleh process.env.PORT, yaitu variabel lingkungan yang ditetapkan oleh runtime App Engine.
  • Anda memerlukan file app.yaml untuk men-deploy layanan ke App Engine.

Membuat server untuk memproses permintaan HTTP

Inti layanan web Anda adalah server HTTP. Kode contoh dalam panduan ini menggunakan framework Express.js untuk menangani permintaan HTTP, tetapi Anda bebas menggunakan framework web pilihan Anda.

  1. Buat folder baru bernama my-nodejs-service untuk layanan Node.js Anda.

  2. Buka folder di terminal Anda, lalu buat file package.json dengan menjalankan npm init.

  3. Tambahkan Express sebagai dependensi dengan menjalankan:

    npm install express
    

    Pastikan bahwa Express muncul di kolom dependencies file package.json Anda. Berikut contohnya:

    {
      ...
      "dependencies": {
        "express": "^4.16.3"
      }
      ...
    }
    
  4. Tambahkan skrip start ke file package.json Anda:

    "scripts": {
      "start": "node server.js"
    }
    
  5. Buat file bernama server.js di folder yang sama dan tambahkan kode berikut:

    const express = require('express');
    const app = express();
    
    app.get('/', (req, res) => {
      res.send('Hello from App Engine!');
    });
    
    // Listen to the App Engine-specified port, or 8080 otherwise
    const PORT = process.env.PORT || 8080;
    app.listen(PORT, () => {
      console.log(`Server listening on port ${PORT}...`);
    });

Ini adalah server web yang sangat dasar - server ini merespons semua permintaan GET ke jalur root ('/') dengan teks "Hello from App Engine!" Perhatikan empat baris terakhir di mana server disetel untuk memproses port yang ditentukan oleh process.env.PORT, yaitu variabel lingkungan yang ditetapkan oleh runtime App Engine. Jika server Anda tidak disetel untuk memproses port ini, server Anda tidak akan menerima permintaan.

Perhatikan bahwa jika process.env.PORT tidak ditetapkan, port 8080 akan digunakan sebagai default. Hal ini diperlukan untuk menguji aplikasi Anda secara lokal, karena process.env.PORT tidak ditetapkan selama operasi lokal - port tersebut hanya ditetapkan saat aplikasi Anda berjalan di App Engine. Anda dapat menggunakan port mana pun yang Anda inginkan untuk pengujian, tetapi panduan ini menggunakan 8080.

Menjalankan server secara lokal

Untuk menjalankan server secara lokal:

  1. Jalankan npm start di terminal Anda. Tindakan ini akan menjalankan file server.js Anda.

  2. Arahkan browser web Anda ke http://localhost:8080.

Anda akan melihat halaman dengan teks "Hello from App Engine!"

Membuat file app.yaml

File app.yaml menentukan setelan untuk lingkungan runtime layanan App Engine Anda. Layanan Anda tidak akan di-deploy tanpa file ini.

  1. Di folder my-nodejs-service, buat file bernama app.yaml.

  2. Tambahkan konten berikut:

    runtime: nodejs20

    Ini adalah file konfigurasi minimal, yang menunjukkan versi runtime Node.js kepada App Engine. File app.yaml juga dapat menentukan setelan jaringan, setelan penskalaan, dan lainnya. Untuk informasi selengkapnya, lihat referensi app.yaml.

Pada tahap ini, Anda seharusnya memiliki struktur file seperti berikut:

  my-nodejs-service/
  app.yaml
  package.json
  server.js

Langkah berikutnya

Setelah membuat server web Node.js sederhana yang memproses port yang benar dan menentukan runtime dalam file app.yaml, Anda siap untuk men-deploy layanan Anda di App Engine.

Coba sendiri

Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa App Engine dalam skenario dunia nyata. Pelanggan baru mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.

Coba App Engine secara gratis