Lebih
Menggunakan node.js sebagai web server sederhana
Aku ingin lari yang sangat sederhana HTTP server. Setiap MENDAPATKAN permintaan untuk example.com
harus bisa index.html
bertugas untuk itu tapi seperti biasa halaman HTML (yaitu, pengalaman yang sama seperti ketika anda membaca halaman web normal).
Menggunakan kode di bawah ini, saya dapat membaca isi index.html
. Bagaimana saya melayani index.html
seperti biasa web page?
var http = require('http');
var fs = require('fs');
var index = fs.readFileSync('index.html');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end(index);
}).listen(9615);
Salah satu saran di bawah ini adalah rumit dan membutuhkan saya untuk menulis sebuah mendapatkan
line untuk masing-masing sumber daya (CSS, JavaScript, gambar) file yang ingin saya gunakan.
Bagaimana saya dapat melayani satu halaman HTML dengan beberapa gambar, CSS dan JavaScript?
1064
30
Anda dapat menggunakan Connect dan Namun dengan Node.js untuk ini:
$ npm install menghubungkan melayani-statis
var menghubungkan = require('menghubungkan'); var namun = require('melayani-statis'); connect().menggunakan(namun(__dirname)).mendengarkan(8080, function(){ konsol.log('Server yang berjalan pada 8080...'); });
$ node server.js
Sekarang anda dapat pergi ke
http://localhost:8080/yourfile.html
Sederhana Node.js server adalah:
Sekarang anda dapat menjalankan server melalui perintah berikut:
Jika anda're menggunakan NPM 5.2.0 atau yang lebih baru, anda dapat menggunakan
http-server
tanpa menginstal itu dengannpx
. Ini isn't direkomendasikan untuk digunakan dalam produksi, tetapi adalah cara yang bagus untuk cepat mendapatkan server yang berjalan pada localhost.Atau, anda dapat mencoba ini, yang membuka browser web anda dan memungkinkan CORS permintaan:
Untuk opsi lebih lanjut, check out dokumentasi untuk
http-server
di GitHub, atau menjalankan:Banyak fitur bagus lainnya dan otak-mati-sederhana penyebaran ke NodeJitsu.
Fitur Garpu
Tentu saja, anda dapat dengan mudah top up fitur dengan garpu. Anda mungkin menemukan itu's sudah dilakukan di salah satu dari yang ada 800+ garpu dari proyek ini:
Cahaya Server: Auto Alternatif Yang Menyegarkan
Alternatif yang bagus untuk
http-server
adalahcahaya-server
. Mendukung file menonton dan auto-menyegarkan dan banyak fitur lainnya.Tambahkan ke direktori anda menu konteks di Windows Explorer
Sederhana JSON REST server
Jika anda perlu untuk membuat sederhana SISANYA server untuk prototipe proyek kemudian json-server mungkin apa yang anda're looking for.
Auto Menyegarkan Editor
Sebagian besar halaman web editor dan IDE yang sesuai sekarang termasuk sebuah web server yang akan menonton anda sumber file, dan auto refresh halaman web anda ketika mereka berubah.
Saya menggunakan Live Server dengan Kode Visual Studio.
Tombol open source teks editor tanda Kurung juga termasuk NodeJS statis web server. Hanya membuka file HTML di dalam Kurung, tekan "Live Preview" dan itu dimulai server statis dan membuka browser anda di halaman ini. Browser akan *auto refresh setiap kali anda mengedit dan menyimpan file HTML. Hal ini terutama berguna ketika pengujian adaptif situs web. Membuka halaman HTML anda pada beberapa browser/ukuran jendela/perangkat. Menyimpan halaman HTML anda dan langsung melihat jika anda adaptif hal-hal bekerja seperti mereka semua* auto refresh.
PhoneGap Developer
Jika anda're coding hybrid mobile app, anda mungkin akan tertarik untuk mengetahui bahwa PhoneGap tim ini auto refresh konsep di papan dengan mereka baru PhoneGap App. Ini adalah generik aplikasi mobile yang dapat memuat HTML5 file dari server selama pengembangan. Ini adalah sangat licin trik karena sekarang anda dapat melewatkan lambat mengkompilasi/menyebarkan langkah-langkah dalam siklus pengembangan aplikasi mobile hybrid jika anda're mengubah JS/CSS/HTML file — yang adalah apa yang anda're lakukan sebagian besar waktu. Mereka juga menyediakan statis NodeJS web server (run
phonegap melayani
) yang mendeteksi perubahan file.PhoneGap + Sencha Touch Pengembang
I've sekarang secara luas disesuaikan dengan PhoneGap server statis & PhoneGap Developer App untuk Sencha Touch & jQuery Mobile pengembang. Check it out di Sencha Touch Live. Mendukung --qr QR Codes dan-localtunnel bahwa proxy anda statis server dari komputer desktop anda ke URL di luar firewall anda! Ton menggunakan. Besar speedup untuk mobile hybrid devs.
Cordova + Ionic Framework Pengembang
Server lokal dan auto refresh fitur dipanggang ke dalam
ion
alat. Hanya menjalankanionic melayani
dari folder aplikasi. Bahkan lebih baik ...ionic melayani-lab
untuk melihat mobil-menyegarkan berdampingan pandangan dari kedua iOS dan Android.Check out ini inti. I'm mereproduksi itu di sini untuk referensi, tapi inti telah diperbarui secara teratur.
Update
Intinya tidak menangani css dan js file. I've digunakan sendiri. Menggunakan membaca/menulis di "biner" modus isn't masalah. Itu hanya berarti bahwa file isn't diartikan sebagai teks dengan file perpustakaan dan tidak berhubungan dengan content-type dikembalikan dalam respon.
Masalah dengan kode anda anda're selalu kembali konten-jenis "text/plain". Kode di atas tidak kembali setiap konten-jenis, tetapi jika anda're hanya menggunakan itu untuk HTML, CSS, dan JS, browser dapat menyimpulkan mereka baik-baik saja. Tidak ada konten-jenis yang lebih baik dari yang salah.
Biasanya content-type adalah konfigurasi dari server web anda. Jadi saya'm maaf jika ini doesn't memecahkan your masalah, tapi itu bekerja untuk saya sebagai seorang yang sederhana, pengembangan server dan pikir mungkin membantu beberapa orang lain. Jika anda perlu konten yang benar-jenis respon, anda juga perlu secara eksplisit mendefinisikan mereka sebagai joeytwiddle memiliki atau menggunakan perpustakaan seperti Terhubung yang memiliki default masuk akal. Hal yang baik tentang ini adalah bahwa hal itu's sederhana dan self-contained (tidak ketergantungan).
Tapi saya merasa masalah anda. Jadi di sini adalah solusi gabungan.
Anda don't perlu express. Anda don't perlu terhubung. Node.js apakah http NATIVE. Semua yang perlu anda lakukan adalah mengembalikan file yang tergantung pada permintaan:
Lebih lengkap contoh yang menjamin permintaan dapat't mengakses file-file di bawah dasar-direktori, dan tidak tepat penanganan kesalahan:
Saya pikir bagian yang anda're hilang sekarang adalah bahwa anda're mengirimkan:
Jika anda ingin web browser untuk membuat HTML, anda harus mengubah ini untuk:
Step1 (dalam command prompt [saya harap anda cd KE FOLDER]) :
npm install express
Langkah 2: Buat sebuah file server.js
Harap dicatat, anda harus menambahkan WATCHFILE (atau menggunakan nodemon) juga. Kode di atas adalah hanya untuk koneksi server.
LANGKAH 3:
node server.js
ataunodemon server.js
Sekarang ada banyak metode yang mudah jika anda hanya ingin menjadi tuan rumah sederhana HTTP server.
npm install-g http-server
dan buka direktori kami dan ketik
http-server
https://www.npmjs.org/package/http-server
Cara cepat:
Cara:
Daripada berurusan dengan pernyataan switch, saya pikir itu's lebih rapi untuk pencarian jenis konten dari kamus:
Ini pada dasarnya adalah versi terbaru dari jawaban yang diterima untuk terhubung versi 3:
Saya juga menambahkan opsi default sehingga index.html disajikan sebagai default.
jika anda memiliki node yang terpasang pada PC anda mungkin anda memiliki NPM, jika anda don't perlu NodeJS hal-hal, anda dapat menggunakan sajikan paket ini:
1 - Install paket pada PC anda:
2 - Melayani anda statis folder:
Ini akan menunjukkan kepada anda yang port statis folder yang disajikan, hanya menavigasi ke host seperti:
Anda don't perlu menggunakan NPM modul untuk menjalankan simple server, ada's sangat kecil perpustakaan yang disebut "NPM Gratis Server" untuk Node:
50 baris kode, output jika anda meminta sebuah file atau folder dan memberikan warna merah atau hijau jika gagal untuk bekerja. Kurang dari 1KB dalam ukuran (minified).
Saya menemukan menarik perpustakaan pada npm yang mungkin berguna untuk anda. It's disebut mime(
npm install mime
atau https://github.com/broofa/node-mime) dan dapat menentukan tipe mime dari file. Berikut ini's contoh dari sebuah webserver yang saya tulis ini:Ini akan melayani setiap teks biasa, atau file gambar (.html, .css, .js, .pdf, .jpg, .png, .dan m4a .mp3 ini adalah ekstensi I've diuji, tetapi teori ini harus bekerja untuk segala sesuatu)
Developer Catatan
Berikut adalah contoh output yang saya punya dengan itu:
Melihat
unescape
fungsi dalam konstruksi jalan. Ini adalah untuk memungkinkan nama file dengan spasi dan karakter dikodekan.Edit:
Node.js contoh aplikasi Node Chat memiliki fungsi yang anda inginkan. Dalam hal ini's README.textfile 3. Langkah apa yang anda cari.
Berikut ini adalah server.js
Berikut ini adalah util.js
Cara yang saya lakukan itu adalah untuk pertama-tama install node statis server secara global melalui
kemudian arahkan ke direktori yang berisi file html anda dan mulai statis server dengan
statis
.Pergi ke browser dan ketik
localhost:8080/"yourHtmlFile"
.Pada dasarnya menyalin jawaban yang diterima, tapi menghindari membuat file js.
Ternyata sangat convinient.
Update
Sebagai versi terbaru dari Express, melayani-statis telah menjadi terpisah middleware. Gunakan ini untuk melayani:
Install
melayani-statis
pertama.Saya pikir anda mencari ini. Di index.html hanya mengisinya dengan normal html - apa pun yang anda ingin membuat di atasnya, seperti:
Saya menggunakan kode di bawah ini untuk memulai sebuah web server sederhana yang membuat default file html jika tidak ada file yang disebutkan dalam Url.
Itu akan membuat semua js, css dan file gambar, bersama dengan semua konten html.
Setuju pada pernyataan "Tidak ada content-type adalah lebih baik daripada salah satu"
I'm tidak yakin jika ini adalah apa yang anda inginkan, namun, anda dapat mencoba mengubah:
untuk ini:
Ini akan memiliki browser client menampilkan file html bukan teks biasa.
Sedikit lebih verbose express 4.x versi, tetapi yang menyediakan daftar direktori, kompresi, caching dan permintaan log in minimal jumlah baris
Anda hanya bisa mengetik mereka dalam shell anda
sh npx melayani
Repo: https://github.com/zeit/serve.