IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Node.js express框架 ,路由中获取数据 -> 正文阅读

[JavaScript知识库]Node.js express框架 ,路由中获取数据

框架:是一整套解决方案,提供了项目开发中的常用功能,简化了已有的功能

Node.js中常见的框架:express、koa、egg

  1. express框架

网址:https://www.expressjs.com.cn/

基于Node.js平台,快速、开放、极简的WEB开发框架

属于第三方模块,使用需要先去下载安装

npm install expreess

(1)创建WEB服务器

const express=require('express');//引入express第三方模块

const app=express();//创建WEB服务器

app.listen(8080);//设置端口.

路由:路由根据请求的方法和请求的URL作出特定的响应,是一个独立的方法

路由三要素:请求的方法、请求的URL、回调函数

res响应的对象.

res.send()设置响应的内容并发送

res.redirect()设置跳转的URL并发送

res.sendFile()设置响应的文件并发送,文件必须使用绝对路径(_dirname).

req请求的对象

req.url获取请求的

URLreq.method获取请求的方法

req.query获取get传递的数据(查询字符串),结果为对象

?练习:编写文件03_express.js,使用express创建WEB服务器,添加路由(get ?/search),响应搜索的网页search.html。

根据表单的提交,添加对应的路由(get ?/mysearch),响应'搜索成功'

创建03_express.js:

//引入express第三方模块
const express=require('express');
//引入官方核心模块
const querystring=require('querystring');
//创建WEB服务器
const app=express();
//设置端口
app.listen(8081,()=>{
	console.log('服务器创建成功');
});

//添加路由
//请求的方法:get  响应文件search.html
app.get('/search',(req,res)=>{
	res.sendFile(__dirname+'/search.html')
});

app.get('/mysearch',(req,res)=>{
	//获取get传递的数据(格式为查询字符串)
	//获取请求的URL,获取请求的方法
	console.log(req.query);
	res.send('搜索成功');
});

创建search.html:

<!-- 
form:表单标签,用于表单提交(向服务器发请求)
method:设置请求的方法
action:/设置请求的URL
name:起的名字保存用户输入的值
-->
<form method="get" action="/mysearch">
	<input type="text" name='kw' placeholder="请输要搜索的内容" />
	<input type="submit">
</form>

控制台脚本模式运行:

打开浏览器输入 127.0.01:8081/search 输入笔记本点提交

?

?

2.路由中获取数据

传递方式

格式

路由中获取,结果为对象

get传递

http://127.0.0.1:8080/mysearch?kw=笔记本

req.query

{kw:笔记本}

post传递

URL中不可见

req.an('data'. (chunk)=>{

chiak 获取的数据,转字符串后位位询字符串,需要解析为对象

querystring.parse( chunk.toString(?))

});

{user: 'tao', password: '123456'}

路由传参

http://127.0.0.1:8080/package/mysql

需要设置形参.

app.get('/package/:pname',(req,res)=>{

req.params?//获取路由传参的数据,格式为对象.

});

{pname: 'mysql'}

观察数据的传递方式和之前的区别

对比get和post的区别

get请求会被浏览器缓存,post不会被缓存,post安全度相对高

get请求传递的数据最大不超过8k,post请求传递的数据大小没有限制

get请求速速相对post比较快,在对数据安全要求不高的情况下会使用get,例如搜索

练习:使用express创建WEB服务器,添加路由(get ?/reg),响应注册的网页reg.html,点击提交向服务器发请求(post /myreg),响应‘注册成功 ?当前用户名:xx’

?

//引入express第三方模块
const express=require('express');
//引入官方核心模块
const querystring=require('querystring');
//创建WEB服务器
const app=express();
//设置端口
app.listen(8080,()=>{
	console.log('服务器创建成功');
});
//添加路由
//请求的方法:get  响应文件reg.html
app.get('/reg',(req,res)=>{
	res.sendFile(__dirname+'/reg.html')
});
app.post('/myreg',(req,res)=>{
	//post传递的数据以流的方式,分为多段,需要通过事件获取
	//一旦有数据流入到内存,自动触发事件,通过回调函数获取
	req.on('data',(chunk)=>{
		//chunk就是获取的分段数据
		console.log(chunk);
		//转为字符串,格式为查询字符串
		var str=chunk.toString();
		console.log(str);
		//借助查询字符串模块解析为对象
		var obj=querystring.parse(str);
		console.log(obj);
		res.send('当前用户名:'+obj['user']);
	});
});
<form method="post" action="myreg" float="left">
	用户:<input type="text" name='user'/>
	密码:<input type="text" name="password"/>
	邮箱:<input type="text"/>
	手机:<input type="text"/>
	<input type="submit">
</form>

点提交结果:

?

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-24 15:27:49  更:2021-08-24 15:30:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:26:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码