在这之前安装 npm install express
1.创建
//引入express模块
const express = require('express');
//创建web服务器
const app = express();
//设置端口
app.listen(8080)
2.路由
用来接收请求,以及做出响应
可以处理特定的请求,包括三部分,请求的方法,请求的URL,回调函数
d当浏览器发出的请求匹配请求的方法和请求的URL就会自动触发改路由,执行回调函数。
res.send()
设置响应的内容并发送
res.sendFile()
设置响应的文件并发送,文件需要使用绝对路径
__dirname
返回当前的绝对路劲
res.redirct()
设置响应的重定向
app.get('/login', (req, res) => {
//req 请求的对象
//res响应的对象
//设置响应的内容并发送
res.send('这是登录的网页')
});
app.get('/list', (req, res) => {
res.send('这是商品列表')
})
//路由;请求方法 get 请求URL/study
app.get('/study', (req, res) => {
//跳转
res.redirect('http://www.tmooc.cn');
})
app.get('/', (req, res) => {
res.redirect('/list')
})
//响应文件1.html
app.get('/file', (req, res) => {
res.sendFile(__dirname + '/1.html')
})
//获取当前模块的绝对目录
console.log(__dirname)
接着上面引入的express
//引入查询字符串模块
const querystring = require('querystring')//为了把数据解析为对象
app.get('/search', (req, res) => {
//响应文件页面
res.sendFile(__dirname + '/search.html')
});
//根据表单的请求添加对应的请求,添加对应的路由
//请求方法get 请求url /mysearch
//响应成功
app.get('/mysearch', (req, res) => {
//获取查询字符串传递的数据
console.log(req.query)
console.log(req.query.keywork)
res.send('响应成功')
})
app.get('/login', (req, res) => {
res.sendFile(__dirname + '/login.html')
})
//根据表单提交来创建对应的路由
app.post('/mylogin', (req, res) => {
//获取post请求的数据,传递的方式通过流
//使用事件的方式获取,一旦流入数据,获取
req.on('data', (chunk) => {
//chunk分段传递的数据 格式为buffer
let str = String(chunk)//转字符串后,是查询字符串
//将查询字符串解析问对象pares
let obj = querystring.parse(str)
console.log(obj)
console.log(obj.name, obj.pwd)
})
res.send('登录响应成功')
})
//;创建查看包的使用说明路由
//请求方法get url /package 响应:'这是包的详情'
//路由传参
app.get('/package/:pname', (req, res) => {
//获取路由参数的数据
console.log(req.params)
res.send('这是详情介绍' + req.params.pname)
})
app.get('/shopping/:lid/:unm', (req, res) => {
console.log(req.params)
res.send('商品添加成功ID是' + req.params.lid + '商品名字' + req.params.unm)
})
HTML代码
search.html
<!--
method设置请求的方法
action设置请求的URL
-->
<form method="GET" action="/mysearch">
<input type="text" name="keywork">
<input type="submit" value="提交">
</form>
login.html
<form method="POST" action="/mylogin">
<span>用户</span>
<input type="text" name="name">
<br>
<span>密码</span>
<input type="text" name="pwd">
<br>
<input type="submit" value="提交">
</form>
//创建查看包的使用说明路由
//请求方法get url /package 响应:'这是包的详情'
//路由传参
app.get('/package/:pname', (req, res) => {
//获取路由参数的数据
console.log(req.params)
res.send('这是详情介绍' + req.params.pname)
})
app.get('/shopping/:lid/:unm', (req, res) => {
console.log(req.params)
res.send('商品添加成功ID是' + req.params.lid + '商品名字' + req.params.unm)
})