express博客项目01

1.目录

2.安装

3.express的入口代码

4.初始化路由

1.目录

- express 下载、安装和使用,express 中间件机制 - 开发接口,连接数据库,实现记录,日志记录 - 分析 express 中间件原理

2.安装

  • 安装(使用脚手架 express-generator)
  • 初始化代码介绍,处理路由
  • 使用中间件
npm install express-generator -g

安装nodemon和cross-env

npm i nodemon cross-env -S

package.json

"scripts": {
    "start": "node ./bin/www",
    "dev": "cross-env NODE_ENV=dev nodemon ./bin/www"
  }

3.express的入口代码 (app.js)

  • 各个插件的作用
  • post和get请求

cookie-parser:

var cookieParser = require('cookie-parser');
...
app.use(cookieParser());

用于解析cookie。

http-errors:

var createError = require('http-errors');
...
app.use(function(req, res, next) {
  next(createError(404));
});

用于处理404。

morgan:

var logger = require('morgan');
...
app.use(logger('dev'));

用于记录日志。

app.use(express.json());
app.use(express.urlencoded({ extended: false }));

用于处理post请求数据,json获取的是req.headers[‘content-type’] = 'application/json’的格式,另一个处理的是其他格式,在路由中都可以通过req.body获取数据。

router:

app.use('/', indexRouter);

routes/index.js

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

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' });
});

module.exports = router;

在路由文件中通过var router = express.Router();生成路由示例然后创建路由,在app.js中通过中间件形式注册。

错误抛出:

// error handler
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'dev' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

4.初始化路由

routes/blog.js

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

router.get('/list', function(req, res, next) {
  res.json({
      errno: 0,
      data: [1,2,3]
  })
});

router.get('/detail', function(req, res, next) {
    res.json({
        errno: 0,
        data: 'ok'
    })
  });

module.exports = router;

app.js

const blogRouter = require('./routes/blog');
...
app.use('/api/blog', blogRouter);

在这里插入图片描述
routes/user.js

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

router.post('/login', function(req, res, next) {
  const { username, password} = req.body
  res.json({
      errno: 0,
      data: {
          username,
          password
      }
  })
});


module.exports = router;

app.js

const userRouter = require('./routes/user');
...
app.use('/api/user',userRouter);

在这里插入图片描述
在这里插入图片描述
由于有express.json和app.use(express.urlencoded({ extended: false })),可以处理post请求的这两种格式数据。

  1. 在app.js中引用路由文件,在使用的时候可以注册父路由。如:app.use(’/api/blog’, blogRouter);。
  2. 可以通过res.json({})返回json格式数据。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值