express学习笔记
项目搭建
简单的入门步骤: hello world!
- 创建一个项目文件夹
mkdir express-demo
- 进入文件夹
cd express-demo
- 在文件夹中创建自己的模块文件夹并进入
- 生成package.json文件
npm init -y
- 安装express
npm i express
- 创建入口文件 app.js 在该文件中创建web 服务
touch app.js
- 在app.js中书写基本的web请求
const express = require('express');
const app = express();
//'/'表示根目录
//运行之后访问http://localhost:3000
app.get('/', (req, res) => {
res.send("get请求成功")
})
app.post('/', (req, res) => {
res.send("post请求")
})
//运行之后访问http://localhost:3000/user
app.put('/user', (req, res) => {
res.send('put express')
})
app.delete('/user', (req, res) => {
res.send('delete express');
})
//3000表示请求的端口号
app.listen(3000,() => {
console.log('Server running');
})
- 运行app.js(命令行要在对应文件所在目录输入);运行之后,打开对应的网页即可看到get方法中res.send中的内容;
因为浏览器地址栏只能发送get请求,如果想要测试post请求,可以借助postman工具
postman官网
node app.js
如果不想要每次修改都运行一遍node app.js 可以安装nodemon工具
npm install nodemon
运行之后每次保存都会重新刷新
nodemon app.js
因为环境的差异,有的运行上面的代码会报错.可以尝试运行
npx nodemon app.js
提示:以下是本篇文章正文内容,下面案例可供参考
一、express路由基础
一个路由由 请求方法
请求路劲
回调函数
组成
路由是指确定应用程序如何相应客户端对特定端点的请求,该特定端点是URL(或路径)和特定的HTTP请求方法(GET,POST等).
每个路由可以具有一个或多个处理程序函数,这些函数在匹配该路由时执行.
var http = require('http')
// 通过http模块 创建web应用
var app = http.createServer((req,res) => {
res.writeHead(200,{
"ContentType":"text/plain"})//状态码,返回格式
res.end('Hello World');//结束响应同时 发送数据
})
// 通过监听端口启动
app.listen(3000,'localhost')
console.log('http://localhost:3000');
上面的这段代码和下面这段代码 app.get('/',function())效果相同
//req 请求对象
//res 响应对象
app.get('/', (req, res) => {
res.send("get请求成功")
})
二、请求和响应
expres使用路由回调函数的参数:request 和 response对象来处理请求和响应的数据.
express不对node.js已有的特征进行二次抽象,只是在它基础上扩展了web应用的基本功能;内部使用还是http 感兴趣可以查看nodejs官方文档中的Class: http.IncomingMessage部分
更多请求相关参数 请访问express官方文档
(一) 响应对象
res对象 表示express在收到http请求时发送的http响应.
继承于nodejs中的Class: http.ServerResponse;
原生响应
- res.statusCode = 500
- res.statusMessage = ‘mess’
- res.setHeader(‘aa’,‘bb’)
- res.write(‘hello world’)
- res.end(‘end’)
express响应
- res.status(500)
- res.set(‘aa’,‘bb’)
- res.send(‘你好 美丽的姑娘’)
跳转响应 res.redirect(‘http://baidu.com’)
下载响应 res.download(__dirname + ’ /app.json’)
json响应 res.json({ name:‘魔法’ })
响应文件内容 res.sendFile(__dirname + ’ /test.html ')
(二)状态码
- 1xx: 相关信息
- 2xx: 操作成功
- 3xx: 重定向
- 4xx:客户端错误
- 5xx:服务器错误
三、express基本用法
为方便理解,数据采用json文件保存,没有连接数据库
在app.js的同级目录下,创建一个db.json文件;
内部写入json格式的数据.示例如下:
{
"todos": [
{
"id": 1,
"title": "run"
},
{
"id"