Ini mungkin pertanyaan yang sangat mendasar tapi saya tidak mengerti. Apa perbedaan antara membuat aplikasi menggunakan Express.js dan memulai mendengarkan aplikasi di port 1234, misalnya:
var express = require('express');
var app = express();
//app.configure, app.use etc
app.listen(1234);
dan menambahkan server http:
var express = require('express');
var http = require('http');
var app = express();
var server = http.createServer(app);
//app.configure, app.use etc
server.listen(1234);
Apa bedanya?
Jika saya menavigasi http://localhost:1234
, maka saya mendapatkan output yang sama.
Jawaban:
Bentuk kedua (membuat server HTTP sendiri, alih-alih memiliki Express buatkan untuk Anda) berguna jika Anda ingin menggunakan kembali server HTTP, misalnya untuk dijalankan
socket.io
dalam instance server HTTP yang sama:Namun,
app.listen()
juga mengembalikan instance server HTTP, jadi dengan sedikit penulisan ulang Anda dapat mencapai sesuatu yang serupa tanpa membuat server HTTP sendiri:sumber
===
perbandingan literal akan gagal;) Jika Anda tidak percaya, selalu ada sumbernya .var socketio = require('socket.io')
pada baris ketiga perlu ditulis ulang?app.listen()
karena membutuhkan lebih sedikit kode. Karena hanya lapisan yang sangat tipis di atasnyaserver.listen()
, dan ia mengembalikan instance server, umumnya tidak ada alasan untuk membuat instance server HTTP secara manual.Ada satu lagi perbedaan menggunakan aplikasi dan mendengarkan server http adalah ketika Anda ingin mengatur untuk server https
Untuk menyiapkan https, Anda memerlukan kode di bawah ini:
Aplikasi dari express hanya akan mengembalikan server http, Anda tidak dapat mengaturnya secara express, jadi Anda harus menggunakan perintah server https
sumber
Hanya untuk tujuan ketepatan waktu dan memperpanjang sedikit jawaban Tim.
Dari dokumentasi resmi :
sumber
express/lib/appplication.js
dan tidak lebih dari jalan pintas untuk membuat server http node.Saya datang dengan pertanyaan yang sama tetapi setelah google, saya menemukan tidak ada perbedaan besar :)
Dari Github
Jika Anda ingin membuat server HTTP dan HTTPS, Anda dapat melakukannya dengan modul "http" dan "https" seperti yang ditunjukkan di sini.
Juga jika Anda ingin bekerja dengan socket.io lihat contohnya
Lihat ini
Saya lebih suka
app.listen()
:)sumber
Express pada dasarnya adalah pembungkus modul http yang dibuat untuk kemudahan pengembang sedemikian rupa sehingga ..
sumber