express
express是一个创建服务器的第三方模块,比内置http模块使用方便,使用它还是老套路先安装后导入。
npm i express
创建一个简单的服务器:
//导入
const express = require('express')
// 创建app
const app = express()
// 监听get post
app.get('/user',(req,res)=>{
// req:请求体对象
// res:响应体对象
// req.url 获取请求地址
// req.method 获取请求方法
// req.params 获取动态参数
// req.query 获取url地址上的参数
// res.send()向客户端响应数据
app.send('GET user')
})
app.post('/book',(req,res)=>{
res.send('POST book')
})
// 使用80端口
app.listen(80,()=>{
console.log('http://127.0.0.1')
})
express设置静态资源目录
express中自带一个中间件方法 express.static(目录名) 就可以把这个目录设置为静态资源目录,这里的中间件后面会说到,现在就把它当成一个方法就行。
//导入
const express = require('express')
// 创建app
const app = express()
// 使用app.use方法
app.use(express.static('public'))
// app.use('/public',express.static('public')) // 如果想要添加前缀的话需要在 app.use 中传入第一参数为 '/public'
// 使用80端口
app.listen(80,()=>{
console.log('http://127.0.0.1')
})
静态资源目录中的文件可以直接在服务器上访问,比如 public 目录下有一个 style.css 文件,就可以在服务器地址上直接写 http://127.0.0.1/style.css,就可以访问到,其中不需要在 /style.css 前面添加 /public 前缀,如果想要添加前缀的话需要在 app.use 中传入第一参数为 ‘/public’。
express中的路由
路由就是当客户端发送请求时,服务器会根据请求方法和地址匹配对应的处理方法。express提供了一个路由的中间件 express.Router()。写路由最好使用模块化,这样容易维护。下面演示路由的使用:
// 新建一个user.js文件 关于user的请求都在这个文件
const express = require('express')
const router = express.Router()
router.get('/list',(req,res)=>{
res.send('GET user list')
})
// 导出
module.exports = router
// app.js
const express = require('express')
// 导入路由模块
const router = require('./router/user')
// 创建app应用
const app = express()
// 设置静态资源
app.use(express.static('public'))
// 注册路由
app.