日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

最近学习的 Node.js 之 http

發布時間:2025/7/14 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 最近学习的 Node.js 之 http 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

利用 http 模塊開始寫簡單的web服務。

模塊:

const http=require('http'); const fs=require('fs'); const path=require('path');function startServer() {let onRequest=function (req,res) {console.log('recived a request.');res.writeHead(200,{'Content-Type':'text/html'});let wwwdir= path.resolve(__dirname,'../www');// console.log(wwwdir);let readStream = fs.createReadStream(wwwdir+'/bbb.html');readStream.pipe(res);};let server=http.createServer(onRequest);server.listen(80,'192.168.1.101'); };exports.startServer = startServer;

調用者,APP,使用兩行就開啟了一個簡單的web服務。

let server=require('./mod_server');server.startServer();

?

單文件版路由,響應了幾個不同的頁面:

const http = require('http'); const fs = require('fs'); const path = require('path');let wwwdir = path.resolve(__dirname, '../www');let onRequest = function (req, res) {console.log('recived a request. ' + req.url);if (req.url === '/' || req.url === '/home') {res.writeHead(200, {'Content-Type': 'text/html;charset=UTF-8'});let readStream = fs.createReadStream(wwwdir + '/index.html');readStream.pipe(res);} else if (req.url === '/about') {res.writeHead(200, {'Content-Type': 'text/html;charset=UTF-8'});let readStream = fs.createReadStream(wwwdir + '/about.html');readStream.pipe(res);} else if (req.url === '/api') {res.writeHead(200, {'Content-Type': 'application/json'});let jsonObj = {name: "alex",email: 'abc@gg.com',age: 32};// console.log(JSON.parse(jsonStr)); // 反序列化res.end(JSON.stringify(jsonObj));} else {res.writeHead(404, {'Content-Type': "text/html;charset=utf8"});res.write('抱歉 404 ,你要的頁面沒找到.');}; };let server = http.createServer(onRequest); server.listen(8001, 'localhost');

?

分開為獨立文件的 web server

一、server.js

const http = require('http');function startServer(route, handle) {let onRequest = function (request, response) {console.log('Request received ' + request.url);// 傳遞到 route 函數 route(handle, request.url, response);};let server = http.createServer(onRequest);server.listen(8001, '127.0.0.1');console.log('Server started on 127.0.0.1:8001'); }module.exports.startServer = startServer;

二、router.js

const fs = require('fs'); const path = require('path');let wwwdir = path.resolve(__dirname, '../www');function route(handle, pathname, response) {console.log('Routing a request for ' + pathname);// 判斷 handle中是否有對應的 pathname 函數if (typeof handle[pathname] === 'function') {handle[pathname](response); // response作為參數傳遞到 handle 函數} else {response.writeHead(404, {'Content-Type': 'text/html'});fs.createReadStream(wwwdir + '/404.html', 'utf8').pipe(response);} }module.exports.route = route;

三、handler.js

const fs = require('fs'); const path = require('path');let wwwdir = path.resolve(__dirname, '../www');function home(response) {response.writeHead(200, {'Content-Type': 'text/html'});fs.createReadStream(wwwdir + '/index.html', 'utf8').pipe(response); }function review(response) {response.writeHead(200, {'Content-Type': 'text/html'});fs.createReadStream(wwwdir + '/about.html', 'utf8').pipe(response); }function api_records(response) {response.writeHead(200, {'Content-Type': 'application/json'});let jsonObj = {name: "Alex",passwd: "123456",email: 'aaa@cc.com',age: 22};response.end(JSON.stringify(jsonObj)); }module.exports = {home: home,review: review,api: api_records };

四、app.js 主程序,模塊方式調用前面的三個文件即可

const server = require('./server'); const router = require('./router'); const handler = require('./handler'); let handle = {}; handle["/"] = handler.home; handle['/home'] = handler.home; handle['/review'] = handler.review; handle['/api'] = handler.api; server.startServer(router.route, handle);

?

轉載于:https://www.cnblogs.com/frx9527/p/nodejs2.html

總結

以上是生活随笔為你收集整理的最近学习的 Node.js 之 http的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。