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