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!'
})
})