Express


express

Hello World

  • “Buat proyek, tambahkan konfigurasi package.json

    $ mkdir myapp # membuat direktori
    $ cd myapp # masuk ke direktori
    $ npm init -y # Inisialisasi konfigurasi
    
  • Menginstal dependensi

    $ npm install express
    
  • Masukkan berkas index.js dan tambahkan kode:

    const express = require('express')
    const app = express()
    const port = 3000
    app.get('/', (req, res) => {
      res. send('Hello World!')
    })
    app. listen(port, () => {
      console.log(`Mendengarkan port pada ${port}`)
    })
    
  • Jalankan aplikasi menggunakan perintah berikut

    $ node index.js
    

{.marker-timeline}

express -h

Penggunaan: express [opsi] [dir]
Pilihan:
  -h, --help informasi penggunaan keluaran
      --version nomor versi keluaran
  -e, --ejs menambahkan dukungan mesin ejs
      --hbs menambahkan dukungan mesin hbs
      --pug tambahkan dukungan mesin pug
  -h, --hogan tambahkan dukungan mesin hogan.js
      --no-view Tidak ada tampilan mesin yang dihasilkan
  -v, --view <engine> tambahkan dukungan view <engine> (ejs|hbs|hjs|jade|pug|twig|vash) (default jade)
  -c, --css <engine> tambahkan dukungan stylesheet <engine> (less|stylus|compass|sass) (css default)
      --git tambahkan .gitignore
  -f, --force paksa direktori yang tidak kosong

{.wrap-text}

Membuat proyek myapp

$ express --view = pug myapp
# jalankan aplikasi
$ DEBUG = myapp:*npm start

express()

:- :-
express.json() #
express.raw() #
express.Router() #
express.static() #
express.text() #
express.urlencoded() #

Router

:- :-
router.all() #
router.METHOD() #
router.param() #
router.route() #
router.use() #

Aplikasi

var express = require('express')
var app = express()

console.dir(app.locals.title)
//=> 'Aplikasi Saya'
console.dir(app.locals.email)
//=> '[email protected]'

Atribut

:- :-
app.locals Variabel lokal dalam aplikasi #
app.mountpath Pola jalur untuk pemasangan sub-aplikasi #

Peristiwa

:- :-
mount Aplikasi anak dipasang pada aplikasi induk, dan peristiwa dipicu pada aplikasi anak #

Metode

:- :-
app.all() #
app.delete() #
app.disable() #
app.disabled() #
app.enable() #
app.enabled() #
app.engine() #
app.get(name) #
app.get(path, callback) #
app.listen() #
app.METHOD() #
app.param() #
app.path() #
app.post() #
app.put() #
app.render() #
app.route() #
app.set() #
app.use() #

Permintaan

Atribut

:- :-
req.app #
req.baseUrl #
req.body #
req.cookies #
req.fresh #
req.hostname #
req.ip #
req.ips #
req.method #
req.originalUrl #
req.params #
req.path #
req.protocol #
req.query #
req.route #
req.secure #
req.signedCookies #
req.stale #
req.subdomain #
req.xhr #

Metode

:- :-
req.accepts() #
req.acceptsCharsets() #
req.acceptsEncodings() #
req.acceptsLanguages() #
req.get() Dapatkan bidang header permintaan HTTP #
req.is() #
req.param() #
req.range() #

Tanggapan

app.get('/', function (req, res) {
  console.dir(res.headersSent) //false
  res.send('OK')
console.dir(res.headersSent) //true
})

Atribut

:- :-
res.app #
res.headersSent #
res.locals #

Metode

:- :-
res.append() #
res.attachment() #
res.cookie() #
res.clearCookie() #
res.download() Meminta file untuk diunduh #
res.end() mengakhiri proses respons #
res.format() #
res.get() #
res.json() Kirim respons JSON #
res.jsonp() Kirim respons dengan dukungan JSONP #
res.links() #
res.location() #
res.redirect() Permintaan pengalihan #
res.render() merender templat tampilan #
res.send() Mengirim berbagai jenis tanggapan #
res.sendFile() ` Mengirim berkas sebagai aliran oktet #
res.sendStatus() #
res.set() #
res.status() #
res.type() #
res.vary() #

Contoh

Router {. row-span-2}

Dipanggil untuk setiap permintaan yang diteruskan ke router ini

router. use (function (req, res, next) {
  //.. beberapa logika di sini.. seperti middleware lainnya
  next()
})

akan menangani setiap permintaan yang diakhiri dengan /events

// Tergantung di mana router "use()"
router. get('/events', (req, res, next) => {
  //..
})

Tanggapan

Objek res mewakili respons HTTP yang dikirim oleh aplikasi Express ketika menerima permintaan HTTP

app.get('/user/:id', (req, res) => {
  res.send('user' + req.params.id)
})

Permintaan

Objek req merepresentasikan permintaan HTTP dan memiliki properti untuk string kueri permintaan, parameter, badan, header HTTP, dll.

app.get('/user/:id', (req, res) => {
  res.send('user' + req.params.id)
})

res. end()

res. end()
res.status(404).end()

Mengakhiri proses respons. Metode ini sebenarnya berasal dari inti Node, khususnya metode response.end() dari http.ServerResponse

res.json([body])

res.json(null)
res.json({ user: 'tobi' })
res.status(500).json({ error: 'message' })

app.all

app.all('/secret', function (req, res, next) {
  console.log('mengakses bagian rahasia...')
  next() // Limpahkan kontrol ke penangan berikutnya
})

app.delete

app.delete('/', function (req, res) {
  res.send('HAPUS permintaan ke beranda')
})

app.disable(nama)

app.disable('trust proxy')
app.get('trust proxy')
// => false

app.disabled(nama)

app.disabled('trust proxy')
// => true

app.enable('trust proxy')
app.disabled('trust proxy')
// => false

app.engine(ext, callback)

var engines = require('consolidate')

app.engine('haml', engines.haml)
app.engine('html', engines.hogan)

app.listen([port[, host[, backlog]]][, callback])

var express = require('express')

var app = express()
app.listen(3000)

Perutean

const express = require('express')
const app = express()

//Merespons "halo dunia" saat membuat permintaan GET ke beranda
app.get('/', (req, res) => {
  res.send('halo dunia')
})
// Perutean metode GET
app.get('/', (req, res) => {
  res.send('GET permintaan ke beranda')
})

// Perutean metode POST
app.post('/', (req, res) => {
  res.send('POST permintaan ke beranda')
})

Middleware

function logOriginalUrl (req, res, next) {
  console.log('ReqURL:', req.originalUrl)
  next()
}

function logMethod (req, res, next) {
  console.log('Tipe Permintaan:', req.method)
  next()
}

const log = [logOriginalUrl, logMethod]

app.get('/user/:id', log,
  (req, res, next)=>{
    res.send('Info Pengguna')
  }
)

Menggunakan templat

app.set('view engine', 'pug')

Buat berkas templat Pug bernama index.pug di direktori views dengan konten berikut

html
  kepala
    title = judul
  tubuh
    h1 = pesan

Buat rute untuk merender berkas index.pug. Jika properti mesin penampil tidak diatur, ekstensi berkas penampil harus ditentukan

app.get('/', (req, res) => {
  res. render('index', {
    title: 'Hai', pesan: 'Halo!'
  })
})