一尘不染

在express.js中,有什么方法可以在一个函数中捕获对json和html的请求?

node.js

有人知道 express.js中的 一种方法可以在单个函数中捕获html和json的请求吗?

本质上,我希望两者都具有一条路由,/users并且/users.json-就像rails的路由->控制器一样。

这样,我可以将逻辑封装在单个函数中,并决定呈现html还是json。

就像是:

app.get('/users[.json]', function(req, res, next, json){
  if (json)
    res.send(JSON.stringfy(...));
  else
    res.render(...); //jade template
});

我可以使用参数吗?


阅读 236

收藏
2020-07-07

共1个答案

一尘不染

路由是一个简单的字符串,如手册所述,该字符串在内部编译为RegExp,因此您可以执行以下操作:

app.get("/users/:format?", function(req, res, next){
  if (req.params.format) { res.json(...); }
  else {
    res.render(...); //jade template
  }
});

在此处查看更多信息:http :
//expressjs.com/guide.html#routing

2020-07-07