node.js - ExpressJS 4.15.2 自定义中间件设置内容类型

标签 node.js express middleware

我有一小块自定义中间件,但我似乎无法获得除 text/html 之外的任何内容类型的响应。

  getValidator: function(req, res, next) {
    res.setHeader('Content-Type', 'application/json');

    if (!req.query.Name) { next('please provide a Name'); }

    return next();
  }

这是一个 super 小的应用程序,没有其他自定义中间件。

谢谢!

最佳答案

我自己来回答吧。 :) 如果我不正确,请纠正我,但这似乎确实有效。

  getValidator: function(req, res, next) {

    if (!req.query.Name) { return res.status(500).json({ error: 'please provide a Name' }); }

    return next();
  }

如果您不使用“返回”,它将继续遍历该链。如果您使用 next('ANYTHING') ,它将触发 ExpressJS 的默认 404 处理程序并尝试返回文本/html。我希望这对某人有帮助! (或者下次我搞砸的时候我)

关于node.js - ExpressJS 4.15.2 自定义中间件设置内容类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43077161/

相关文章:

javascript - 如何从javascript在mongodb中传递内部查询

node.js - 如何在 node.js 中从 .csv 转换为 array/json/string

node.js - 添加自定义中间件

node.js - 使用 less-middleware 将多个源 CSS 文件编译为一个?

javascript - Axosoft/nsfw文件监控器不会触发文件更改

mysql - LAMP 开发人员如何开始使用 Redis/Node.js 解决方案?

node.js - Sails.js:res.attachment + res.redirect(附加文件并重定向)

javascript - Web 应用程序的组件 - Express.js、Angular.js 和 MVC 混淆?

php - 拉拉维尔。重定向打算发布方法

mysql - 在 Sequelize 上查询空关联(最好是 v1.7)