这是我参与8月更文挑战的第4天,活动详情查看:8月更文挑战html
当请求路由的时候会计入路由的处理方法中,这个方法本质是中间件,包括三个参数,即请求对象Request,返回对象Response和执行下一步方法 nextjson
router.get('/iwhao', function(req, res, next) {
console.log(req.url) // 当访问路由/iwhao时控制台会打印 /iwhao
res.render('index', { title: 'Express' });
});
复制代码
router.get('/iwhao?page=11231313', function(req, res, next) {
// 当访问路由 /iwhao?page=11231313 时控制台会打印 11231313
console.log(req.query.page)
res.render('index', { title: 'Express' });
});
复制代码
router.get('/iwhao/:id', function(req, res, next) {
console.log(req.params)
res.render('index', { title: 'Express' });
});
复制代码
当访问路由/iwhao/123123 时控制台会打印 {id: '123123'}后端
和get获取参数方式同样,Express 已经将POST 请求参数封装在了Request.body对象中,一样是以键值对的形式存在,方便获取处理 代码以下api
router.post('/iwhao', function(req, res, next) {
console.log(req.body)
res.render('index', { title: 'Express' });
});
复制代码
router.post('/iwhao', function(req, res, next) {
console.log(req.headers)
res.send(req.headers);
});
复制代码
借助postman 接口请求工具 在headers中传入键为name值为chaoren的参数,而后请求后返回结果以下能够获取到请求头中的默认和自定义数据 数组
上面说了请求,既然有个请求,那确定有相应返回值,下面介绍返回对象Responsemarkdown
参数 | 参数类型 | 是否必选 | 做用 |
---|---|---|---|
view | String | 是 | 页面文件,用于渲染的文件路径 |
locals | Object | 否 | 属性定义页面的局部变量 |
callback | function | 否 | 回调函数,返回可能的错误和呈现的字符串,但不执行自动响应,发生错误是该方法在next(err) 内部调用 |
send() 方法 只发送一个https响应至请求端,只接收一个参数,这个参数能够是任何类型app
之因此能够接收任何类型的参数是由于执行这个方法的时候会自动设置响应头数据类型,即响应头里Conten-Type字段 1.当参数为Buffer对象时 Response.send() 将Conten-Type响应头字段设置为application/octet-stream前后端分离
router.get(/iwhao/, function(req, res, next) {
res.send(Buffer('<p>我是213131313</p>'));
});
复制代码
在Postman 中查看请求,会发现返回的响应头中Conten-Type字段值为 application/octet-stream svn
2.当参数为String时 Response.send()方法将将Conten-Type响应头字段设置为text/html函数
res.send('<p>I am iron man</p>');
复制代码
3.当参数为Array或Object时 Response.send()方法将将Conten-Type响应头字段设置为application/json;
res.send([1,2,3,4,5]);
res.send({name:'iron man'});
复制代码
除了以前使用模板返回html页面以外,返回json格式的数据也是目前最为流行的,也能够叫作 api接口, 尤为是在先后端分离的开发模式下,更为用途普遍,全部学习怎样返回json 数据也很重要
res.json({
name:'iron man',
title:'无敌'
})
复制代码
Response.json() 方法只接受一个参数,能够是任何的Json格式类型,包括对象、数组字符串
// res.status(500).end()
res.status(403).end()
复制代码
使用res.status 后必定要写 end() 或者send和json方法当结尾,由于status 只是设置状态,并无返回结果
访问/iwhao 会跳转到 /ceshi
router.get(/iwhao/, function(req, res, next) {
res.redirect('/ceshi')
});
router.get('/ceshi', function(req, res, next) {
res.json({name:'iron man'});
});
复制代码
Response.redirect() 还能够设定 http状态码
res.redirect(301,'/ceshi')
复制代码
以上就是本篇的所有内容了,很是感谢帅哥美女们能看到这里,若是这个文章写得还不错或者对你有一点点帮助,求点赞,求关注,求分享,固然有任何问题能够在评论讨论,我都会积极回答的,再次感谢😁