错误处理


前面讲到 express 有一个内置的错误处理逻辑,如果程序出错,会直接将错误栈返回并显示到页面上。如访问:localhost:3000/posts/xxx/edit 没有权限编辑的文章页,将会直接在页面中显示错误栈,如下:

Error: 权限不足
    at /Users/nswbmw/Desktop/myblog/routes/posts.js:95:15
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)

现在我们修改代码,实现复用页面通知。修改 index.js,在 app.listen 上面添加如下代码:

index.js

app.use(function (err, req, res, next) {
  console.error(err)
  req.flash('error', err.message)
  res.redirect('/posts')
})

这里我们实现了将错误信息用页面通知展示的功能,刷新页面将会跳转到主页并显示『权限不足』的红色通知。