Web前端105天-day32-Node.js-創(chuàng)新互聯(lián)

node.jsday04

堅守“ 做人真誠 · 做事靠譜 · 口碑至上 · 高效敬業(yè) ”的價值觀,專業(yè)網(wǎng)站建設(shè)服務(wù)10余年為成都成都廣告制作小微創(chuàng)業(yè)公司專業(yè)提供成都企業(yè)網(wǎng)站定制營銷網(wǎng)站建設(shè)商城網(wǎng)站建設(shè)手機網(wǎng)站建設(shè)小程序網(wǎng)站建設(shè)網(wǎng)站改版,從內(nèi)容策劃、視覺設(shè)計、底層架構(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í)開始


一、復(fù)習(xí)

二、http模塊
  • 請求的對象
    • 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

目錄結(jié)構(gòu)

商品列表這是一組商品列表
	
// 引入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ù)器啟動成功')
})
// 添加事件,監(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)容,會自動將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()
})
  • 框架:是一整套解決方案,簡化了已有的功能,增加了新的功能,框架為項目開發(fā)準備的。

三、express框架
  • 地址:Express - 基于 Node.js 平臺的 web 應(yīng)用開發(fā)框架 - Express 中文文檔 | Express 中文網(wǎng)
  • 基于Node.js平臺,快速、開放、極簡的WEB開發(fā)框架
  • 屬于第三方模塊,需要先下載安裝
  • npm ?install ?express
3.1創(chuàng)建WEB服務(wù)器
//1.引入express模塊
//2.創(chuàng)建WEB服務(wù)器
const app=express()
//3.設(shè)置端口
app.listen(3000)
3.2路由
  • 監(jiān)聽特定的請求,路由的組成部分:請求的URL、請求的方法、回調(diào)函數(shù)
  • res--響應(yīng)的對象
  • res.send()--設(shè)置響應(yīng)內(nèi)容并發(fā)送
  • res.redirect()--設(shè)置響應(yīng)的重定向,跳轉(zhuǎn)到另一個URL
  • res.sendFile()--響應(yīng)一個文件,路徑必須使用絕對路徑, __dirname
// 引入express模塊 
const express = require('express')
// console.log( express )
// 創(chuàng)建WEB服務(wù)器
const app = express()
// 設(shè)置端口
app.listen(3000,()=>{
	console.log('服務(wù)器啟動成功')
})

// 添加路由,監(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')
})

// 獲取當前模塊的絕對路徑
console.log( __dirname )
3.3使用插件將post傳參轉(zhuǎn)為對象
(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,點擊提交向服務(wù)器發(fā)請求(get ?/mylogin),響應(yīng)‘登錄成功!歡迎:xxx’

  • 練習(xí):添加路由(get ?/reg),響應(yīng)注冊的網(wǎng)頁reg.html,點擊提交向服務(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)部是否會使用一個第三方模塊轉(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: '北京'}


總結(jié)

node.jsday04學(xué)習(xí)結(jié)束

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

分享題目:Web前端105天-day32-Node.js-創(chuàng)新互聯(lián)
標題路徑:http://www.muchs.cn/article8/dgisip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、服務(wù)器托管、域名注冊App設(shè)計、網(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)

成都網(wǎng)站建設(shè)