之前在《从零开始Node.js—03服务器搭建》中介绍了基于Node.js内置模块http进行服务器搭建的方法。
但由于http使用起来不够方便,所以有人将其封装成了第三方模块express, 用起来简单,效率max!
果然程序员就是喜欢偷懒
可用于创建web服务器的第三方库
本质上是对node内置的http模块进行了封装,express之于http,相当于jQuery之于浏览器DOM
创建web网络服务器
创建API接口服务器
安装express,在终端运行
npm install express // 安装最新版本
npm install [email protected] //指定了安装的版本
使用express,创建一个index.js
const express = require('express');
const app = express();
采用方法app.get( url, 回调函数(req, res) => {})
,app.post( url, 回调函数(req, res) => {})
注意:url不包括域名和端口号,是端口号后面的部分
req.search默认是个空对象,获取的是url中?后面的部分
req.params默认是个空对象,键为在url中写的动态变量名字,值为url传来的动态变量对应位置的值
注意:url中没有数字,通通都是字符串
注意:get和post是http请求的方法,url是请求的地址,两码事
// url=localhost/222?name=zs&age=18
app.get( '/:id', (req, res) => {
// 请求
req.query //查询字段 {name:'zs', age: '18'}
req.params //:标识动态变量 {id: '222'}
// 响应
res.send();
})
app.post( '/:id', (req, res) => {
// 请求
req.query //查询字段 {name:'zs', age: '18'}
req.params //:标识动态变量 {id: '222'}
// 响应
res.send();
})
express.static('./public')
将index.js文件夹下的public文件夹下的所有内容挂载出去
比如文件夹中有1.txt,则可通过http://127.0.0.1/1.txt访问到1.txt中的内容
注意:public文件夹的名字不会出现在路径中。
app.use(express.static('./public'));
不过可以通过设置第一个参数将public也添加到路径中,可以给它起个别名
app.use('/public', express.static('./public')); // http://localhost/public/1.txt
app.use('/p1', express.static('./public')); // http://localhost/p1/1.txt
暴露多个静态资源
若重名,以先出现的为准(先找到,先返回
app.use('/public', express.static('./public'));
app.use('/clock', express.static('./clock'));
app.listen( 80, ()=>{
console.log('express server is running at http://127.0.0.1')
})
服务器启动:开始listen——》IP:端口
听到不同的事件,采用不同的回调函数
// index.js文件
// 1 引入express
const express = require('express');
//2 创建服务器
const app = express();
// 3 监听get/post请求
// url=localhost/222?name=zs&age=18
app.get( '/:id', (req, res) => {
// 请求
req.query //查询字段 {name:'zs', age: '18'}
req.params //:标识动态变量 {id: '222'}
// 响应
res.send();
})
app.post( '/:id', (req, res) => {
// 请求
req.query //查询字段 {name:'zs', age: '18'}
req.params //:标识动态变量 {id: '222'}
// 响应
res.send();
})
// 4 挂载静态资源
app.use(express.static('./public'));
app.use('/clock', express.static('./clock'));
// 5 启动服务器
app.listen( 80, ()=>{
console.log('express server is running at http://127.0.0.1')
})
get请求可以直接浏览器发送,post请求就需要用软件模拟了
推荐apipost6,界面友好,主要是免费免费免费
postman要花钱