2023-12-03 分類: 網站建設
const http = require('http');
http.createServer((request, response) => {
// 請求的入口
}).listen(8080);
復制代碼
關于如何使用和對象來完成一個請求響應,大部分教程中都有提到。也可以查看Node的中文文檔。這里就不詳細介紹了。
處理靜態文件
這里我們使用-,使用npm安裝這個模塊,在項目根目錄下創建一個文件夾并放一些靜態頁面,創建一個.js文件:
const http = require('http');
const serveStatic = require('serve-static');
const publicpath = 'public';
const staticHandler = serveStatic(publicpath);
http.createServer((request, response) => {
staticHandler(request, response, () => {
// 失敗回調
})
}).listen(8080);
復制代碼
以上代碼是處理靜態文件最簡單的配置。需要注意的是()是異步操作。您可以通過使用 Node.js 運行 .js 來訪問目錄中的文件。
簡單路由
要實現路由,首先要獲取請求路徑。 Node內置url模塊的引入可以幫助我們解決這個問題
const url = require('url');
const http = require('http');
http.createServer((request, response) => {
const path = url.parse(request.url).pathname;
if (path === '/')
response.end('path is /');
else if (path === '/index')
response.end('path is /index');
else {
response.statusCode = 404;
response.end('Not Found');
}
}).listen(8080);
復制代碼
這是最簡單的路由實現之一。需要注意的是,無論如何都必須調用.end()來終止請求,否則瀏覽器會一直等待對應的狀態
在實際開發中,我們不會使用一系列的if...else來處理路由,一般創建一個路由映射表,加上靜態文件處理:
const url = require('url');
const http = require('http');
const serveStatic = require('serve-static');
const publicpath = 'public';
const staticHandler = serveStatic(publicpath);
const map = new Map([
['/', response => {
response.end('path is /');
}],
['/index', response => {
response.end('path is /index');
}]
]);
http.createServer((request, response) => {
const path = url.parse(request.url).pathname;
if (map.has(path)) {
let handler = map.get(path);
handler(response);
} else
staticHandler(request, response, () => {
response.statusCode = 404;
response.end('Not Found');
});
}).listen(8080);
復制代碼
當前服務的處理邏輯是:先找到對應的路由,如果有,交給路由的回調處理,如果沒有,在目錄中尋找靜態文件,返回404錯誤如果沒有
結論
我還是為這個系列多寫了幾篇文章,但是我發現寫的越多,對pHp越無所謂,所以打算放棄這個前綴,以后的文章會專注于Node的web發展
感謝閱讀php開發筆記php開發筆記,歡迎指出文中錯誤,歡迎交流
接下來的幾篇文章將介紹一個基于我最近在研究的開源框架的更復雜的后端架構。尋求關注和star
本文名稱:一個后端架構
文章轉載:http://m.newbst.com/news35/298335.html
成都網站建設公司_創新互聯,為您提供網頁設計公司、靜態網站、虛擬主機、Google、企業建站、微信公眾號
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯
猜你還喜歡下面的內容