目录
2.res.sendFile( absolute filepath )
开发工具的使用(nodemon热更新 ,Rest Client )
express中Router的作用?以及Router要解决的问题?
用法一:app.use(前缀,中间件函数):使用自定义中间件时
用法二:app.use(前缀,中间件函数):使用模块化路由时 【重点】
用法三:router.use(前缀,中间件函数):使用自定义中间件时
逻辑错误 :就是含有err,req,res,next四个形参的自定义中间件
1)、express.urlencoded()内置中间件用来接收以post方式的键值对格式发送的参数:
2)、express.json()内置中间件用来接收以post方式的json格式发送的参数:
Nodejs创建web服务器(不常用)
为什么要创建web服务器?
只有我们把nodejs程序通过web服务器发布出去之后,别人才能通过互联网来访问我们的nodejs程序,否则也只是在本地运行我们的nodejs程序。
创建服务器步骤
//引入http模块
const http = require('http');
// console.log(http);
//创建web服务器:
const server = http.createServer();
// console.log(server);
//监听事件:server.on('事件名',回调方法);
//req对象:request请求对象
//res对象:response响应对象
server.on('request', function(req, res) {
res.end('Yes OK');
// res.end('Hello web'); //结束响应、res.end()必须且只能使用一次
});
//监听端口:
server.listen(3000, function() {
console.log('3000端口');
});
搭建过程中需要的
设置响应头信息。res.writeHead(200,{'Content-Type':"text/html;charset=utf8"});
打印请求消息。method和url
//引入http模块
const http = require('http');
// console.log(http);
//创建web服务器:
const server = http.createServer();
// console.log(server);
//监听事件:server.on('事件名',回调方法);
//req对象:request请求对象
//res对象:response响应对象
server.on('request', function(req, res) {
console.log(req.url);
//res.setHeader()或res.writeHead():设置响应的头信息
// res.setHeader('content-type', 'text/html;charset=utf-8');
res.writeHead(200, 'ok', { 'content-type': 'text/html;charset=utf-8' });
res.write('<h2>张三</h2>'); //返回响应的内容、res.write()可以多次使用
res.write('<p><strong>年龄:20</strong></p>');
res.end('Yes OK');
// res.end('Hello web'); //结束响应、res.end()必须且只能使用一次
});
//监听端口:
server.listen(3000, function() {
console.log('3000端口');
});
Express框架开发
基本信息
Express是基于基于 Nodejs平台,快速、开放、极简的 Web 开发框架(后端开发框架)。
中文地址:Express - 基于 Node.js 平台的 web 应用开发框架 - Express 中文文档 | Express 中文网https://www.expressjs.com.cn/
官网地址:Express - Node.js web application framework
作用:使用 Express,我们可以方便、快速的创建 Web 网站的服务器或 API 接口(纯json数据)的服务器。
本质上:express是一个第三方包存在于npm社区中。
API(Application Programming Interface,应用程序接口)是一些预先定义的接口(如函数、HTTP接口),或指软件系统不同组成部分衔接的约定。
express的安装和使用
初始化项目并安装express
注意:在项目根目录下执行下面的命令:
npm i express
初体验:express创建web服务器
//引入express框架
const express = require('express');
// console.log(express);
//创建应用:
const app = express();
// console.log(app);
//监听端口:
app.listen(4040, () => {
console.log('4040端口');
});
express中的app对象
1.app.get( 路径,兼听函数 )
注意:所有的路径必须以/开头
匹配以get方式发送过来的请求
以get方式发送请求的有:
1)、在浏览器地址栏中;
2)、a标签中的href属性;
3)、form标签中的method='get'或省略method属性; //只能以get方式的查询字符串格式发送参数
4)、javascript中使用location.href进行页面跳转;
2.app.post(路径,兼听函数 )
注意:所有的路径必须以/开头
匹配以post方式发送过来的请求
3. app.all(路径,兼听函数 )
匹配以任意方式发送过来的请求,app.all()方法通常放在最后面来处理404错误。
express的response对象
1. res.send( 字符串|对象 )。
返回响应,res.send()方法相当于原生nodejs中的res.setHeader()和res.end()这两个方法
2.res.sendFile( absolute filepath )
将某个文件的内容读取出来并作为响应返回给客户端。
express的request对象
1)req.query
req.query属性用来接收get方式的查询字符串格式发送的参数,get方式的查询字符串格式的参数如下:
2)req.params
专业名称:动态路径(路由)
req.params属性用来接收get方式的path路径格式发送的参数,get方式的path路径格式的参数如下:http://localhost:4040/zhuce/参数值1/参数值2/参数值3
使用步骤
第一步:使用app.get()设置路径时参数部分要使用:变量名来表示,如:
//详情页面
//app.get('/detail/:变量名1/:变量名2', (req, res) => {
//
// res.send(`详情页`);
//});
//详情页面
app.get('/detail/:uid/:email', (req, res) => {
console.log(req.params);
let { uid = '', email = '' } = req.params;
res.send(`详情页${uid} ${email}`);
});
开发工具的使用(nodemon热更新 ,Rest Client )
nodemon热更新工具
如果以热更新方式运行某个应用程序,则热更新会检查当前应用程序文件的代码是否发生变化,若有变化则热更新工具会自动停止并重新运行当前应用程序,而不需要手动频繁停止、运行某个应用程序。
第一步:安装nodemon热更新工具:
在dos小黑窗的任意目录中执行下面的命令:
npm i nodemon -g
关于-g参数的说明: 【重点】
1)、使用-g参数安装的第三方包默认存储在:C:\Users\当前用户\AppData\Roaming\npm;
2)、使用-g参数安装某个包时可以在dos小黑窗的任意目录来执行安装命令,而不一定要在项目的根目录中执行安装命令;
3)、同一台电脑只需要安装一次即可;
第二步:以热更新方式来运行某个应用程序:
E:\web_beijing\day07\代码>nodemon 5-作业-zhuce.js
Rest Client
Rest Client是vscode的一个插件,该插件是用来模拟HTTP协议中的各种请求方式发送请求的,通常用来调试服务端的接口程序。
第一步:在vscode工具中安装Rest Client插件;
第二步:在任意目录中创建以.http结尾的文件,在这个以.http结尾文件中定义要调用的服务端程序(接口程序),格式如下:
@urls=http://localhost:5000
POST {
{urls}}/mytest HTTP/1.1
###
GET {
{urls}}/dozhuce?uid=321&usr=lisi&[email protected] HTTP/1.1
###
GET {
{urls}}/login/110/zhangsan HTTP/1.1
路由Router
什么是路由?
广义上来讲,路由就是映射关系。对于我们网络请求中的路由是:每一次请求对应每一个请求处理的函数。
路由就是根据请求中的不同path路径返回不同的响应,在express框架中设计路由的方式有两种:
第一种:使用app.get()、app.post()、app.all()方法来设计路由;
第二种:使用模块化方式来设计路由;
文章评论