http模塊
- http模塊是Node的內置模塊璃赡。
- http模塊用于構建服務器。
1献雅、http.createServer()
- 定義:
用于創(chuàng)建一個Node服務器。主要做了兩件事:
處理請求
處理響應
語法:
http.createServer({選項對象},監(jiān)聽函數(shù))
- 選項對象:可選塌计。是一個object,通過選項對象挺身,傳入一些參數(shù)。
監(jiān)聽函數(shù):是一個回調函數(shù)锌仅。當用戶請求從端口進來后章钾,該函數(shù)立刻被調用。
- Request對象:請求對象
- 請求對象:包含與請求有關信息热芹。
- Response對象:響應對象
- 響應對象:包含與響應有關的信息贱傀。
返回值
createServer()
方法返回一個Server對象。
示例:
2伊脓、server.listen()
定義
用于監(jiān)聽服務器端口府寒。
語法
server.listen()
server.listen([port[,host][,callback])
server.listen(端口,主機名,回調函數(shù))
- 端口: 數(shù)值
- 主機名:字符串
- 連接數(shù):數(shù)值(最大511)
- 回調函數(shù):function
返回值
返回服務器對象
示例
3、res.setHeader()
定義
用于設置響應頭信息报腔。特點:
- 只能設置一個值
- 多次執(zhí)行
- 優(yōu)先級低于
res.writeHead()
語法
res.setHeader(name, value)
res.setHeader(響應頭屬性名, 對應的值)
返回值
無
示例
res.setHeader("Content-Type","text/html")
res.setHeader("Content-Type","text/plain")
res.setHeader("Content-Type", "application/json")
4株搔、res.write()
定義
write()
方法用于設置響應數(shù)據(jù)。
語法
response.write(chunk[, encoding][, callback]);
response.write(數(shù)據(jù)[,字符編碼][, 回調函數(shù)]);
返回值
布爾值
示例
5纯蛾、res.writeHead()
定義
用于設置響應頭信息纤房。特點:
- 設置多個值
- 只能執(zhí)行一次
- 優(yōu)先級高于
res.setHeader()
語法
res.writeHead(statusCode[, statusMessage][, headers]);
res.writeHead(狀態(tài)碼,'狀態(tài)信息',{響應頭});
返回值
返回一個響應對象。以便進行鏈式調用翻诉。
示例
6炮姨、res.end()
定義
end()
用于通知服務器響應結束。該方法在響應時必須調用碰煌。
語法
response.end([data[, encoding]][, callback])
res.end('數(shù)據(jù)','字符編碼',回調函數(shù))
返回值
返回this
示例
讀取文件內容
const http = require('node:http')
const fs = require('fs')
const server = http.createServer((req,res) => {
// console.log(res);//響應對象[ServerResponse]
// console.log(req);//請求對象[inComingMessage]
console.log(req.url);
//設置響應頭的數(shù)據(jù)類型
// res.setHeader('Content-Type', 'text/html;charset=utf-8')
// res.write('<h1>你好世界</h1>')
// res.write('<h2>你好中國</h2>')
// res.end()
//讀取index.html內容作為響應數(shù)據(jù)
res.setHeader('Content-Type', 'text/html;charset=utf-8')
fs.readFile('./views/index.html',(err,data) => {
if(err){
console.log(err);
res.end()
} else {
res.end(data)//把數(shù)據(jù)寫在這里
}
})
})
server.listen(3000,'localhost',511,() => {
console.log('服務器已經(jīng)運行在http://localhost:3000');
})
添加路由
const http = require('node:http')
const fs = require('fs')
const server = http.createServer((req,res) => {
console.log(req.url);
res.setHeader('Content-Type', 'text/html;charset=utf-8')
//添加路由
//條件判斷 path = './views/index.html'
// fs.readFile('./views/index.html',(err,data) => {
// fs.readFile('./views/about.html',(err,data) => {
fs.readFile('./views/404.html',(err,data) => {
if(err){
console.log(err);
res.end()
} else {
res.end(data)//把數(shù)據(jù)寫在這里
}
})
})
server.listen(3000,'localhost',511,() => {
console.log('服務器已經(jīng)運行在http://localhost:3000');
})
熟練掌握node.js路由的原生寫法
const http = require('node:http')
const fs = require('fs')
const server = http.createServer((req, res) => {
console.log(req.url);
res.setHeader('Content-Type', 'text/html;charset=utf-8')
//////////////添加路由:router/////////////////
//條件判斷 path = './views/index.html'
let path = './views/'
switch (req.url) {
case '/':
path += 'index.html'
res.statusCode = 200
break
case '/about':
path += 'about.html'
res.statusCode = 200
break
case '/about-me':
res.setHeader('Location', '/about')
res.statusCode = 301
break
default:
path += '404.html'
res.statusCode = 404
}
// fs.readFile('./views/index.html',(err,data) => {
// fs.readFile('./views/about.html',(err,data) => {
fs.readFile(path, (err, data) => {
if (err) {
console.log(err);
res.end()
} else {
res.end(data)//把數(shù)據(jù)寫在這里
}
})
})
server.listen(3000, 'localhost', 511, () => {
console.log('服務器已經(jīng)運行在http://localhost:3000');
})
Npm install
語法
npm install module-name //簡寫安裝:npm i express //刪除 :npm uni express
npm install -g module-name # -g: //全局安裝
npm i module-name # npm i是npm install的別名
npm install module-name --save
npm install module-name --not--save
npm install module-name --save-dev
express寫路由
const express = require('express')
const app = express()
app.get('/', function (req, res) {
// res.send('Hello World')
res.sendFile('./views/index.html',{root:__dirname})
})
app.get('/about', function (req, res) {
res.sendFile('./views/about.html',{root:__dirname})
})
app.get('/about-me', function (req, res) {
res.redirect('/about')
})
//404 page
app.use((req,res) => {
res.status(404).sendFile('./views/404.html',{root:__dirname})
})
app.listen(3000)
express寫路由開始
- 查找模塊:登錄npmjs.com 查詢一個你要的第三方模塊
- 安裝模塊
- 引入模塊
- 使用模塊
1.創(chuàng)建文件夾 myname舒岸,右擊點擊終端打開,運行打印index.js文件拄查。
2.創(chuàng)建index.js文件
3.安裝(登錄npmjs.com 查詢一個你要的第三方模塊);
4.例如:npm i express
詳細:node.js(軟件包管理器) install(安裝)express(表示)
-----------------
5.例如:npm init --yes
//全自動
----------------
5.例如:pm uni express
詳細:刪除軟件
-----------------
6.例如:運行index.js