美文网首页
Express入门

Express入门

作者: BlueSkyBlue | 来源:发表于2020-06-10 20:09 被阅读0次

创建Express

const express = require('express')
const app = express();

app.get('/', function(req, res){
  res.send('hello');
});

app.listen(80);

之后是处理请求体

var bodyParser = require('body-parser');

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
  extended: false
}));
app.use(express.static(__dirname + '/public'));

app.use的第一项省略了资源路径,代表body parser适用所有的请求资源路径。body parser用于解析类json格式的请求体。

urlencoded用于处理string类型的body。

express.static代表静态文件目录。

问题来了,将所有的请求写在一个文件中显然不合理,也不符合模块化开发的需求。这时我们需要将一部分功能抽取出来形成一个模块。

var express = require('express');
var router = express.Router();

/* GET users listing. */
router.get('/list', function(req, res) {
  res.send('respond with a resource');
});

module.exports = router;

router有get, post, all方法可以处理以各种方式提交的请求。
之后回到app.js,填写以下代码:

var usersRouter = require('./routes/users');
app.use('/users', usersRouter);

此时可以访问/user路径下的/list路径。

Request对象

function(req, res)中的req就是请求对象。它有几个方法,下面逐个做出说明:
req.method: 请求是以什么方式提交的。
req.baseUrl: 获取前面基础的资源路径。
req.path: 获取当前请求的资源路径。
req.headers: 将请求的所有头信息转为json。
req.query: 对URL中的查询参数进行转换后得到的json对象。
req.body: 如果当前请求是以post提交,req.body可以将请求体中的参数转为json。

使用Express制作Rest风格的API
Rest风格类似于以下这种情况。

/user/101
router.get('/:id', function (req, res) {
    console.log('id: ', req.params.id);
    res.send('Ok');
});

首先我们要取出其中的id。

Response对象

用于向浏览器输出响应结果。

router.get('/fb', function(req, res){
  res.status(403).send('forbidden!');
});

router.get('/tt', function(req, res){
  res.contentType('application/javascript');
  res.sendFile('/ok.js', {root: __dirname + '/../public'});
});

router.get('/mm', function(req, res){
  res.json({a: 1, b: [true, 'ok']});
});

相关文章

网友评论

      本文标题:Express入门

      本文链接:https://www.haomeiwen.com/subject/dzaptktx.html