express是基于 Node.js 平台,快速、开放、极简的 Web 开发框架,下面我们讲解其环境搭建和常见用法
去node中文网下载对应版本进行安装,然后在dos窗口中分别使用node -v
和npm -v
命令查看版本,如果正常输出版本则说明安装成功。
新建一个文件夹(如express),先在其目录下使用npm init
命令,会生成一个package.json文件,用于保存项目依赖关系和描述信息。再执行npm install express --save
命令,生成node_modules目录。
创建index.js文件,编写一个服务进行测试
const express = require('express')
const app = express()
const port = 3000
app.get('/', (req, res) => res.send('Hello Express!'))
app.listen(port, () => console.log(`Example app listening on port ${port}!`))
使用node 文件名
命令启动node服务
在浏览器访问http://localhost:3000/地址,输出hello express
文本,说明express环境搭建成功。
路由配置其实就是指定请求方式(get、post、put、delete等)和请求路径(这里使用根路径,可根据实际情况编写),req
表示请求参数,res
表示响应参数,通过调用res.send()
方法,可以将数据返回给浏览器。下面举例的4种方式,可以结合postman工具进行测试。
app.get('/', (req, res) => res.send('Got a GET request!'));
app.post('/', (req, res) => res.send('Got a POST request!'));
app.put('/', (req, res) => res.send('Got a PUT request!'));
app.delete('/', (req, res) => res.send('Got a DELETE request!'));
创建data.js
和router.js
,data中存放数据,router管理路由请求
在data.js
中模拟响应数据
var resInfo={
"result":{
"code":"200",
"msg":"request success"
}
};
//导出数据
module.exports = resInfo;
在router.js
中引入data.js
文件,并配置路由’/‘和’/msg/’
const express = require('express')
const router = express.Router();
//引入数据
const data = require('./data.js');
//路由信息
router.get('/', (req, res) => res.send(data));
router.get('/msg/', (req, res) => res.send(data.result.msg));
//导出路由
module.exports = router;
在index.js
中引入router.js
,并实现服务
const express = require('express');
const app = express();
const port = 3000;
//引入路由
const router = require('./router.js');
//使用路由
app.use('/',router);
//监听服务
app.listen(port, () => console.log(`Example app listening on port ${port}!`));
启动服务后,访问http://localhost:3000/msg/地址,返回数据request success
方式一:拼接参数
const express = require('express');
const app = express();
const port = 3000;
const url = require('url');
/**
* 请求参数解析:get方式一
*/
app.get('/api/', (req, res) =>{
//解析url请求参数
const req_url = url.parse(req.url,true);
const query = req_url.query;
const name = query.name;
const phone = query.phone;
res.send({
name:name,
phone:phone
})
}
);
//监听服务
app.listen(port, () => console.log(`Example app listening on port ${port}!`));
访问http://localhost:3000/api?name=tom&phone=123456
地址,查看解析返回的参数值
方式二:restful风格
const express = require('express');
const app = express();
const port = 3000;
const url = require('url');
/**
* 请求参数解析:get方式二
*/
app.get('/api/:name/:phone', (req, res) =>{
//restful风格
const name = req.param("name");
const phone = req.param("phone");
res.send({
name:name,
phone:phone
})
}
);
//监听服务
app.listen(port, () => console.log(`Example app listening on port ${port}!`));
访问地址http://localhost:3000/api/jim/15866667777
地址,查看解析返回的参数值
方式一:
const express = require('express');
const app = express();
const port = 3000;
const bodyParser = require("body-parser")
app.use(bodyParser.urlencoded({
extended:true
}));
/**
* 请求参数解析:post方式一
*/
app.post('/api/',(req, res) =>{
const name = req.body.name;
const phone = req.body.phone;
res.send({
name:name,
phone:phone
})
});
//监听服务
app.listen(port, () => console.log(`Example app listening on port ${port}!`));
const express = require('express');
const app = express();
const port = 3000;
const bodyParser = require("body-parser")
app.use(bodyParser.urlencoded({
extended:true
}));
/**
* 请求参数解析:post方式二
*/
app.post('/api/',(req, res) =>{
const name = req.param("name");
const phone = req.param("phone");
res.send({
name:name,
phone:phone
})
});
//监听服务
app.listen(port, () => console.log(`Example app listening on port ${port}!`));
使用postman进行测试(同上)