Apakah kaedah modul http nodejs?
Kaedah modul http nodejs ialah: 1. createServer(), yang boleh mencipta instance pelayan 2. listen(), yang memulakan pelayan untuk mendengar port yang ditentukan; ; 4. tulis(); 5. end();
Persekitaran pengendalian tutorial ini: sistem Windows 7, nodejs versi 12.19.0, komputer DELL G3.
Modul http
1 Penggunaan asas
1.1 Sifat modul
1.1.1 Atribut permintaan HTTP
headers
: maklumat pengepala permintaan HTTP.url
: Laluan yang diminta.
1.2 Kaedah modul
1.2.1 Kaedah modul http
createServer(callback)
: Buat contoh pelayan.
1.2.2 Kaedah contoh pelayan
listen(port)
: Mulakan pelayan untuk mendengar port yang ditentukan.
1.2.3 Kaedah respons HTTP
setHeader(key, value)
: Tentukan maklumat pengepala HTTP.write(str)
: Tentukan kandungan respons HTTP.end()
: Hantar respons HTTP.
1.3 Memproses permintaan GET
Http模块
terutamanya digunakan untuk membina HTTP服务
. Membina pelayan HTTP menggunakan Node.js adalah sangat mudah.
var http = require('http'); http.createServer(function (request, response){ response.writeHead(200, {'Content-Type': 'text/plain'}); response.end('Hello World\n'); }).listen(8080, "127.0.0.1"); console.log('Server running on port 8080.');
- Baris pertama kod di atas
var http = require("http")
bermaksud memuatkan modul http - Kemudian, panggil modul http
createServer方法
untuk mencipta contoh pelayan dan tetapkan ia kepada Pembolehubah http. ceateServer方法
menerima fungsi sebagai parameterrequest参数
fungsi ialah objek, mewakili permintaan HTTP klien- Parameter respons juga merupakan objek, mewakili pelayan Respons HTTP.
response.writeHead方法
menunjukkan bahawa pelayan bertindak balas dengan pengepala HTTP; kaedahresponse.end
menunjukkan kandungan khusus respons pelayan, dan回应完成后关闭本次对话
- dan yang terakhir
listen(8080)
menunjukkan permulaan contoh dan pemantauan pelayan mesin tempatan8080端口
Simpan baris kod di atas ke dalam app.js fail, kemudian gunakan nod untuk memanggil fail ini dan pelayan akan mula berjalan.
$ node app.js
Pada masa ini, tetingkap baris arahan akan memaparkan baris gesaan “Server running at port 8080.”
. Buka penyemak imbas, lawati http://localhost:8080
, dan halaman web akan memaparkan “Hello world!”
.
Contoh di atas adalah untuk menjana halaman web di tempat kejadian Anda juga boleh menulis halaman web terlebih dahulu, menyimpannya dalam fail, dan kemudian menggunakan modul fs untuk membaca fail halaman web dan mengembalikannya.
var http = require('http'); var fs = require('fs'); http.createServer(function (request, response){ fs.readFile('data.txt', function readData(err, data) { response.writeHead(200, {'Content-Type': 'text/plain'}); response.end(data); }); }).listen(8080, "127.0.0.1"); console.log('Server running on port 8080.');
Pengubahsuaian berikut adalah untuk memaparkan kandungan yang berbeza mengikut permintaan URL yang berbeza, yang setara dengan membuat prototaip tapak web.
var http = require("http"); http.createServer(function(req, res) { // 主页 if (req.url == "/") { res.writeHead(200, { "Content-Type": "text/html" }); res.end("Welcome to the homepage!"); } // About页面 else if (req.url == "/about") { res.writeHead(200, { "Content-Type": "text/html" }); res.end("Welcome to the about page!"); } // 404错误 else { res.writeHead(404, { "Content-Type": "text/plain" }); res.end("404 error! File not found."); } }).listen(8080, "localhost");
Objek permintaan (permintaan) fungsi panggil balik mempunyai atribut berikut.
url
: URL permintaanmethod
: Kaedah permintaan HTTPheaders
: Semua maklumat pengepala HTTP permintaan HTTP.
1.4 Memproses permintaan POST
Apabila pelanggan menggunakan kaedah POST
untuk menghantar data, pelayan boleh mengendalikan kedua-dua data
dan end
Acara, sediakan fungsi mendengar. Acara
var http = require('http'); http.createServer(function (req, res) { var content = ""; req.on('data', function (chunk) { content += chunk; }); req.on('end', function () { res.writeHead(200, {"Content-Type": "text/plain"}); res.write("You've sent: " + content); res.end(); }); }).listen(8080);
data
akan dicetuskan setiap kali sekeping data diterima semasa proses penerimaan data dan data yang diterima dihantar ke fungsi panggil balik. Acara end
dicetuskan selepas semua penerimaan data selesai.
Dengan mengubah sedikit kod di atas, anda boleh mencipta fungsi muat naik fail. Gunakan Untuk mengeluarkan permintaan dapatkan.
"use strict"; var http = require('http'); var fs = require('fs'); var destinationFile, fileSize, uploadedBytes; http.createServer(function (request, response) { response.writeHead(200); destinationFile = fs.createWriteStream("destination.md"); request.pipe(destinationFile); fileSize = request.headers['content-length']; uploadedBytes = 0; request.on('data', function (d) { uploadedBytes += d.length; var p = (uploadedBytes / fileSize) * 100; response.write("Uploading " + parseInt(p, 0) + " %\n"); }); request.on('end', function () { response.end("File Upload Complete"); }); }).listen(3030, function () { console.log("server started"); });
2.2 request()
digunakan untuk mengeluarkan , format penggunaannya adalah seperti berikut.
Parameter pilihan kaedah permintaan boleh menjadi objek atau rentetan. Jika ia adalah rentetan, ini bermakna bahawa ini ialah URL, dan Node akan secara automatik memanggil get方法
secara dalaman untuk memproses parameter ini.
function getTestPersonaLoginCredentials(callback) { return http.get({ host: 'personatestuser.org', path: '/email' }, function(response) { var body = ''; response.on('data', function(d) { body += d; }); response.on('end', function() { var parsed = JSON.parse(body); callback({ email: parsed.email, password: parsed.pass }); }); }); },
host
:HTTP请求所发往的域名或者IP地址,默认是localhosthostname
:该属性会被url.parse()解析,优先级高于host。port
:远程服务器的端口,默认是80。localAddress
:本地网络接口。socketPath
:Unix网络套接字,格式为host:port或者socketPath。method
:指定HTTP请求的方法,格式为字符串,默认为GET。path
:指定HTTP请求的路径,默认为根路径(/)。可以在这个属性里面,指定查询字符串,比如/index.html?page=12。如果这个属性里面包含非法字符(比如空格),就会抛出一个错误。headers
:一个对象,包含了HTTP请求的头信息。auth
:一个代表HTTP基本认证的字符串user:password。agent
:控制缓存行为,如果HTTP请求使用了agent,则HTTP请求默认为Connection: keep-alive,它的可能值如下:undefined
(默认):对当前host和port,使用全局Agent。
Agent
:一个对象,会传入agent属性。
false
:不缓存连接,默认HTTP请求为Connection: close。
keepAlive
:一个布尔值,表示是否保留socket供未来其他请求使用,默认等于false。keepAliveMsecs
:一个整数,当使用KeepAlive的时候,设置多久发送一个TCP KeepAlive包,使得连接不要被关闭。默认等于1000,只有keepAlive设为true的时候,该设置才有意义。request
方法的callback参数
是可选的,在response事件发生时触发,而且只触发一次。http.request()
返回一个http.ClientRequest类
的实例。它是一个可写数据流,如果你想通过POST方法发送一个文件,可以将文件写入这个ClientRequest对象
。
下面是发送POST请求的一个例子。
var postData = querystring.stringify({ 'msg' : 'Hello World!' }); var options = { hostname: 'www.google.com', port: 80, path: '/upload', method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'Content-Length': postData.length } }; var req = http.request(options, function(res) { console.log('STATUS: ' + res.statusCode); console.log('HEADERS: ' + JSON.stringify(res.headers)); res.setEncoding('utf8'); res.on('data', function (chunk) { console.log('BODY: ' + chunk); }); }); req.on('error', function(e) { console.log('problem with request: ' + e.message); }); // write data to request body req.write(postData); req.end();
注意
,上面代码中,req.end()
必须被调用,即使没有在请求体内写入任何数据,也必须调用。因为这表示已经完成HTTP请求
。
发送过程的任何错误(DNS错误、TCP错误、HTTP解析错误
),都会在request对象上触发error事件
。
3 搭建HTTPs服务器
搭建HTTPs
服务器需要有SSL
证书。对于向公众提供服务的网站,SSL证书
需要向证书颁发机构购买;对于自用的网站,可以自制。
自制SSL证书需要OpenSSL,具体命令如下。
openssl genrsa -out key.pem openssl req -new -key key.pem -out csr.pem openssl x509 -req -days 9999 -in csr.pem -signkey key.pem -out cert.pem rm csr.pem
上面的命令生成两个文件:ert.pem(证书文件)
和 key.pem(私钥文件)
。有了这两个文件,就可以运行HTTPs服务器了。Node.js
提供一个https
模块,专门用于处理加密访问。
var https = require('https'); var fs = require('fs'); var options = { key: fs.readFileSync('key.pem'), cert: fs.readFileSync('cert.pem') }; var a = https.createServer(options, function (req, res) { res.writeHead(200); res.end("hello world\n"); }).listen(8000);
上面代码显示,HTTPs服务器与HTTP服务器的最大区别,就是createServer
方法多了一个options参数
。运行以后,就可以测试是否能够正常访问。
curl -k https://localhost:8000
更多node相关知识,请访问:nodejs 教程!
Atas ialah kandungan terperinci Apakah kaedah modul http nodejs?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Node.js ialah masa jalan JavaScript bahagian pelayan, manakala Vue.js ialah rangka kerja JavaScript sisi klien untuk mencipta antara muka pengguna interaktif. Node.js digunakan untuk pembangunan bahagian pelayan, seperti pembangunan API perkhidmatan belakang dan pemprosesan data, manakala Vue.js digunakan untuk pembangunan sisi klien, seperti aplikasi satu halaman dan antara muka pengguna yang responsif.

Node.js boleh digunakan sebagai rangka kerja bahagian belakang kerana ia menawarkan ciri seperti prestasi tinggi, kebolehskalaan, sokongan merentas platform, ekosistem yang kaya dan kemudahan pembangunan.

Untuk menyambung ke pangkalan data MySQL, anda perlu mengikuti langkah berikut: Pasang pemacu mysql2. Gunakan mysql2.createConnection() untuk mencipta objek sambungan yang mengandungi alamat hos, port, nama pengguna, kata laluan dan nama pangkalan data. Gunakan connection.query() untuk melaksanakan pertanyaan. Akhir sekali gunakan connection.end() untuk menamatkan sambungan.

Terdapat dua fail berkaitan npm dalam direktori pemasangan Node.js: npm dan npm.cmd Perbezaannya adalah seperti berikut: sambungan berbeza: npm ialah fail boleh laku dan npm.cmd ialah pintasan tetingkap arahan. Pengguna Windows: npm.cmd boleh digunakan daripada command prompt, npm hanya boleh dijalankan dari baris arahan. Keserasian: npm.cmd adalah khusus untuk sistem Windows, npm tersedia merentas platform. Cadangan penggunaan: Pengguna Windows menggunakan npm.cmd, sistem pengendalian lain menggunakan npm.

Pembolehubah global berikut wujud dalam Node.js: Objek global: modul Teras global: proses, konsol, memerlukan pembolehubah persekitaran Runtime: __dirname, __filename, __line, __column Constants: undefined, null, NaN, Infinity, -Infinity

Perbezaan utama antara Node.js dan Java ialah reka bentuk dan ciri: Didorong peristiwa vs. didorong benang: Node.js dipacu peristiwa dan Java dipacu benang. Satu-benang vs. berbilang benang: Node.js menggunakan gelung acara satu-benang dan Java menggunakan seni bina berbilang benang. Persekitaran masa jalan: Node.js berjalan pada enjin JavaScript V8, manakala Java berjalan pada JVM. Sintaks: Node.js menggunakan sintaks JavaScript, manakala Java menggunakan sintaks Java. Tujuan: Node.js sesuai untuk tugas intensif I/O, manakala Java sesuai untuk aplikasi perusahaan besar.

Ya, Node.js ialah bahasa pembangunan bahagian belakang. Ia digunakan untuk pembangunan bahagian belakang, termasuk mengendalikan logik perniagaan sebelah pelayan, mengurus sambungan pangkalan data dan menyediakan API.

Langkah-langkah penggunaan pelayan untuk projek Node.js: Sediakan persekitaran penggunaan: dapatkan akses pelayan, pasang Node.js, sediakan repositori Git. Bina aplikasi: Gunakan npm run build untuk menjana kod dan kebergantungan yang boleh digunakan. Muat naik kod ke pelayan: melalui Git atau Protokol Pemindahan Fail. Pasang kebergantungan: SSH ke dalam pelayan dan gunakan pemasangan npm untuk memasang kebergantungan aplikasi. Mulakan aplikasi: Gunakan arahan seperti node index.js untuk memulakan aplikasi, atau gunakan pengurus proses seperti pm2. Konfigurasikan proksi terbalik (pilihan): Gunakan proksi terbalik seperti Nginx atau Apache untuk menghalakan trafik ke aplikasi anda
