资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

Web前端105天-day32-Node.js-创新互联

node.jsday04

坚守“ 做人真诚 · 做事靠谱 · 口碑至上 · 高效敬业 ”的价值观,专业网站建设服务10余年为成都成都广告制作小微创业公司专业提供成都企业网站定制营销网站建设商城网站建设手机网站建设小程序网站建设网站改版,从内容策划、视觉设计、底层架构、网页布局、功能开发迭代于一体的高端网站建设服务。

目录

前言

一、复习

二、http模块

三、express框架

3.1创建WEB服务器

3.2路由

3.3使用插件将post传参转为对象

总结


前言

node.jsday04学习开始


一、复习

二、http模块
  • 请求的对象
    • req.url--获取请求的资源,格式   '/xxx'

    • req.method--获取请求的方法

  • 练习:编写文件2_http.js,使用http模块创建WEB服务器,设置端口,添加事件监听客户端的请求,根据请求的资源来做出响应
    • /index-- 响应   '这是首页'

    • /1.html--响应 1.html文件(先同步读取文件内容,然后把读取的内容作为响应内容 )

    • /study--跳转到    https://www.tmooc.cn

    • 其它-- 响应   404  Not  Found

目录结构

商品列表这是一组商品列表
	
// 引入http模块                       
const http = require('http')
// 引入fs模块
const fs = require('fs')
// 创建WEB服务器
const app = http.createServer()
// 设置端口
app.listen(3000,()=>{
	console.log('服务器启动成功')
})
// 添加事件,监听客户端请求
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')
		// 把读取的内容作为要响应的内容,会自动将buffer转为字符串
		res.write(data)
	}else if(req.url === '/study') {
		// 设置响应的状态码
		res.statusCode = 302
		// 设置响应头信息中跳转的网址
		res.setHeader('Location','https://www.tmooc.cn')
	}else{
		// 设置响应状态码为404
		res.statusCode = 404
		// 设置响应内容为 Not Found
		res.write('Not Found')
	}
	
	// 无论响应任何内容,最后都要结束
	res.end()
})
  • 框架:是一整套解决方案,简化了已有的功能,增加了新的功能,框架为项目开发准备的。

三、express框架
  • 地址:Express - 基于 Node.js 平台的 web 应用开发框架 - Express 中文文档 | Express 中文网
  • 基于Node.js平台,快速、开放、极简的WEB开发框架
  • 属于第三方模块,需要先下载安装
  • npm  install  express
3.1创建WEB服务器
//1.引入express模块
//2.创建WEB服务器
const app=express()
//3.设置端口
app.listen(3000)
3.2路由
  • 监听特定的请求,路由的组成部分:请求的URL、请求的方法、回调函数
  • res--响应的对象
  • res.send()--设置响应内容并发送
  • res.redirect()--设置响应的重定向,跳转到另一个URL
  • res.sendFile()--响应一个文件,路径必须使用绝对路径, __dirname
// 引入express模块 
const express = require('express')
// console.log( express )
// 创建WEB服务器
const app = express()
// 设置端口
app.listen(3000,()=>{
	console.log('服务器启动成功')
})

// 添加路由,监听对首页的请求
// 请求的URL:/index  请求的方法:get
app.get('/index',(req,res)=>{
	// req 请求的对象
	// res 响应的对象
	// 设置响应的内容并发送
	res.send('这是首页')
})
// 练习:添加路由,监听对用户登录的请求
// 请求的URL:/login   请求的方法:get
// 响应 '登录成功'
app.get('/login',(req,res)=>{
	res.send('登录成功,欢迎')
})

// 添加路由 请求的URL:/study  请求的方法:get
// 跳转到 tmooc
app.get('/study',(req,res)=>{
	res.redirect('https://www.tmooc.cn')
})
// 添加路由 请求的URL:/  请求的方法:get
// 跳转到  
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 )
3.3使用插件将post传参转为对象
(1)使用插件
app.use( express.urlencoded({
  extended: true    //内部是如何转为对象,是否使用第三方模块
}) )
(2)路由中获取参数
req.body
  • post传递的参数出现在请求体中

  • 练习:编写文件04_express.js,引入express模块,创建WEB服务器,设置端口;添加路由(get  /search),响应搜索的网页search.html

  • 练习:添加路由(get  /login),响应登录网页login.html,点击提交向服务器发请求(get  /mylogin),响应‘登录成功!欢迎:xxx’

  • 练习:添加路由(get  /reg),响应注册的网页reg.html,点击提交向服务器发请求(post  /myreg),响应‘注册成功!’

用户搜索
用户登录用户登录
		
用户
密码
用户注册用户注册
		
用户
密码
邮箱
手机
// 04_express.js

// 引入express模块
const express = require('express')
// 创建WEB服务器
const app = express()
// 设置端口
app.listen(3000)
// 添加路由(get  /search)
// 响应文件search.html
app.get('/search',(req,res)=>{
	res.sendFile(__dirname + '/search.html')
})
// 添加路由(get /mysearch),监听按钮提交的请求 ,响应'搜索成功!搜索的关键字:'
app.get('/mysearch',(req,res)=>{
	// 获取请求的URL ,请求的方法
	// console.log( req.url, req.method )
	// 获取get传递的参数
	console.log( req.query )
	res.send('搜索成功!搜索的关键字:'+req.query.wd)
})

// 添加路由(get /login),响应登录的网页login.html
app.get('/login',(req,res)=>{
	res.sendFile(__dirname + '/login.html')
})
// 添加路由(get /mylogin),监听按钮提交的请求
app.get('/mylogin',(req,res)=>{
	// 获取get传递的参数
	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传参转为对象
app.use( express.urlencoded({
	// 内部是否会使用一个第三方模块转为对象
	// true->使用   false->不使用
	extended:true
}) )
// 添加路由(post /myreg),监听按钮提交的请求
app.post('/myreg',(req,res)=>{
	// (2)获取post传递的参数
	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

①使用插件转为对象

②req.body

{wd: '北京'}

params传递

http://127.0.0.1:3000/mysearch/北京

①在路由中设置参数名

②req.params

{wd: '北京'}


总结

node.jsday04学习结束

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享名称:Web前端105天-day32-Node.js-创新互联
标题链接:http://cdkjz.cn/article/dgisip.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220