node.jsday04
堅(jiān)守“ 做人真誠 · 做事靠譜 · 口碑至上 · 高效敬業(yè) ”的價(jià)值觀,專業(yè)網(wǎng)站建設(shè)服務(wù)10余年為成都成都廣告制作小微創(chuàng)業(yè)公司專業(yè)提供成都企業(yè)網(wǎng)站定制營銷網(wǎng)站建設(shè)商城網(wǎng)站建設(shè)手機(jī)網(wǎng)站建設(shè)小程序網(wǎng)站建設(shè)網(wǎng)站改版,從內(nèi)容策劃、視覺設(shè)計(jì)、底層架構(gòu)、網(wǎng)頁布局、功能開發(fā)迭代于一體的高端網(wǎng)站建設(shè)服務(wù)。
目錄
前言
一、復(fù)習(xí)
二、http模塊
三、express框架
3.1創(chuàng)建WEB服務(wù)器
3.2路由
3.3使用插件將post傳參轉(zhuǎn)為對象
總結(jié)
node.jsday04學(xué)習(xí)開始
二、http模塊
三、express框架
- 請求的對象
req.url--獲取請求的資源,格式???'/xxx'
req.method--獲取請求的方法
- 練習(xí):編寫文件2_http.js,使用http模塊創(chuàng)建WEB服務(wù)器,設(shè)置端口,添加事件監(jiān)聽客戶端的請求,根據(jù)請求的資源來做出響應(yīng)
/index-- 響應(yīng)???'這是首頁'
/1.html--響應(yīng)?1.html文件(先同步讀取文件內(nèi)容,然后把讀取的內(nèi)容作為響應(yīng)內(nèi)容 )
/study--跳轉(zhuǎn)到????https://www.tmooc.cn
其它-- 響應(yīng)???404 ?Not ?Found
商品列表 這是一組商品列表// 引入http模塊 const http = require('http') // 引入fs模塊 const fs = require('fs') // 創(chuàng)建WEB服務(wù)器 const app = http.createServer() // 設(shè)置端口 app.listen(3000,()=>{ console.log('服務(wù)器啟動(dòng)成功') }) // 添加事件,監(jiān)聽客戶端請求 app.on('request',(req,res)=>{ // 判斷請求的資源 req.url if(req.url === '/index'){ res.setHeader('Content-Type','text/html;charset=utf-8') res.write('這是首頁') }else if(req.url === '/1.html'){ // 同步讀取文件 var data = fs.readFileSync('1.html') // 把讀取的內(nèi)容作為要響應(yīng)的內(nèi)容,會自動(dòng)將buffer轉(zhuǎn)為字符串 res.write(data) }else if(req.url === '/study') { // 設(shè)置響應(yīng)的狀態(tài)碼 res.statusCode = 302 // 設(shè)置響應(yīng)頭信息中跳轉(zhuǎn)的網(wǎng)址 res.setHeader('Location','https://www.tmooc.cn') }else{ // 設(shè)置響應(yīng)狀態(tài)碼為404 res.statusCode = 404 // 設(shè)置響應(yīng)內(nèi)容為 Not Found res.write('Not Found') } // 無論響應(yīng)任何內(nèi)容,最后都要結(jié)束 res.end() })
框架:是一整套解決方案,簡化了已有的功能,增加了新的功能,框架為項(xiàng)目開發(fā)準(zhǔn)備的。
3.1創(chuàng)建WEB服務(wù)器
- 地址:Express - 基于 Node.js 平臺的 web 應(yīng)用開發(fā)框架 - Express 中文文檔 | Express 中文網(wǎng)
- 基于Node.js平臺,快速、開放、極簡的WEB開發(fā)框架
- 屬于第三方模塊,需要先下載安裝
- npm ?install ?express
3.2路由//1.引入express模塊 //2.創(chuàng)建WEB服務(wù)器 const app=express() //3.設(shè)置端口 app.listen(3000)
3.3使用插件將post傳參轉(zhuǎn)為對象
- 監(jiān)聽特定的請求,路由的組成部分:請求的URL、請求的方法、回調(diào)函數(shù)
- res--響應(yīng)的對象
- res.send()--設(shè)置響應(yīng)內(nèi)容并發(fā)送
- res.redirect()--設(shè)置響應(yīng)的重定向,跳轉(zhuǎn)到另一個(gè)URL
- res.sendFile()--響應(yīng)一個(gè)文件,路徑必須使用絕對路徑, __dirname
// 引入express模塊 const express = require('express') // console.log( express ) // 創(chuàng)建WEB服務(wù)器 const app = express() // 設(shè)置端口 app.listen(3000,()=>{ console.log('服務(wù)器啟動(dòng)成功') }) // 添加路由,監(jiān)聽對首頁的請求 // 請求的URL:/index 請求的方法:get app.get('/index',(req,res)=>{ // req 請求的對象 // res 響應(yīng)的對象 // 設(shè)置響應(yīng)的內(nèi)容并發(fā)送 res.send('這是首頁') }) // 練習(xí):添加路由,監(jiān)聽對用戶登錄的請求 // 請求的URL:/login 請求的方法:get // 響應(yīng) '登錄成功' app.get('/login',(req,res)=>{ res.send('登錄成功,歡迎') }) // 添加路由 請求的URL:/study 請求的方法:get // 跳轉(zhuǎn)到 tmooc app.get('/study',(req,res)=>{ res.redirect('https://www.tmooc.cn') }) // 添加路由 請求的URL:/ 請求的方法:get // 跳轉(zhuǎn)到 app.get('/',(req,res)=>{ res.redirect('/index') }) // 添加路由 請求的URL: /1.html 請求的方法:get // 響應(yīng)文件1.html app.get('/1.html',(req,res)=>{ // 文件必須是絕對路徑 res.sendFile(__dirname + '/1.html') }) // 獲取當(dāng)前模塊的絕對路徑 console.log( __dirname )
(1)使用插件 app.use( express.urlencoded({ extended: true //內(nèi)部是如何轉(zhuǎn)為對象,是否使用第三方模塊 }) )
(2)路由中獲取參數(shù) req.body
post傳遞的參數(shù)出現(xiàn)在請求體中
練習(xí):編寫文件04_express.js,引入express模塊,創(chuàng)建WEB服務(wù)器,設(shè)置端口;添加路由(get ?/search),響應(yīng)搜索的網(wǎng)頁search.html
練習(xí):添加路由(get ?/login),響應(yīng)登錄網(wǎng)頁login.html,點(diǎn)擊提交向服務(wù)器發(fā)請求(get ?/mylogin),響應(yīng)‘登錄成功!歡迎:xxx’
練習(xí):添加路由(get ?/reg),響應(yīng)注冊的網(wǎng)頁reg.html,點(diǎn)擊提交向服務(wù)器發(fā)請求(post ?/myreg),響應(yīng)‘注冊成功!’
用戶搜索
用戶登錄 用戶登錄
用戶注冊 用戶注冊// 04_express.js // 引入express模塊 const express = require('express') // 創(chuàng)建WEB服務(wù)器 const app = express() // 設(shè)置端口 app.listen(3000) // 添加路由(get /search) // 響應(yīng)文件search.html app.get('/search',(req,res)=>{ res.sendFile(__dirname + '/search.html') }) // 添加路由(get /mysearch),監(jiān)聽按鈕提交的請求 ,響應(yīng)'搜索成功!搜索的關(guān)鍵字:' app.get('/mysearch',(req,res)=>{ // 獲取請求的URL ,請求的方法 // console.log( req.url, req.method ) // 獲取get傳遞的參數(shù) console.log( req.query ) res.send('搜索成功!搜索的關(guān)鍵字:'+req.query.wd) }) // 添加路由(get /login),響應(yīng)登錄的網(wǎng)頁login.html app.get('/login',(req,res)=>{ res.sendFile(__dirname + '/login.html') }) // 添加路由(get /mylogin),監(jiān)聽按鈕提交的請求 app.get('/mylogin',(req,res)=>{ // 獲取get傳遞的參數(shù) var obj = req.query console.log(obj) res.send('登錄成功!歡迎:'+obj.user) }) // 添加路由(get /reg),響應(yīng)注冊文件reg.html app.get('/reg',(req,res)=>{ res.sendFile(__dirname + '/reg.html') }) // (1)添加插件,將post傳參轉(zhuǎn)為對象 app.use( express.urlencoded({ // 內(nèi)部是否會使用一個(gè)第三方模塊轉(zhuǎn)為對象 // true->使用 false->不使用 extended:true }) ) // 添加路由(post /myreg),監(jiān)聽按鈕提交的請求 app.post('/myreg',(req,res)=>{ // (2)獲取post傳遞的參數(shù) var obj = req.body console.log(obj) res.send('注冊成功') })
傳參方式
格式
路由中獲取
get傳遞
http://127.0.0.1:3000/mysearch?wd=北京
req.query
{wd: '北京'}
post傳遞
http://127.0.0.1:3000/mysearch
①使用插件轉(zhuǎn)為對象
②req.body
{wd: '北京'}
params傳遞
http://127.0.0.1:3000/mysearch/北京
①在路由中設(shè)置參數(shù)名
②req.params
{wd: '北京'}
node.jsday04學(xué)習(xí)結(jié)束
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧