Express:如果JSON中不存在对象,如何返回404?

时间:2018-06-21 12:17:52

标签: javascript json node.js express

我有以下代码,如果定义了正确的req.path,它将返回一些文本。我需要显示未找到的404。

如果我将它放在for循环条件中,它将通过使用not found返回一堆break;,这在某种程度上是可行的。

我的伪代码大致是这样的:如果Obj存在,则打印它,否则显示404页面。

在这种情况下,我应该在哪里放置res.send(404)

app.get('/', (req, res) => {
  res.send("Welcome!")
})


app.get('*', (req, res) => {
  jsonfile.readFile(file, (err, obj) => {
    let pokedex = obj.pokemon
    let result = []
    let format = req.path.split('/');
    let userPath = format[1]

    for (var i = 0; i < pokedex.length; i++) {
      if (userPath == pokedex[i].name.toLowerCase()) {
        result.push(
          "<h1>" + pokedex[i].name + "</h1><ul>Weight: " + pokedex[i].weight + "</ul>" );
      }
    }
    res.send(result.join())
  })
})

1 个答案:

答案 0 :(得分:3)

/** Receives the next message if one is immediately available. * * @return the next message produced for this message consumer, or * null if one is not available * * @exception JMSException if the JMS provider fails to receive the next * message due to some internal error. */ Message receiveNoWait() throws JMSException; 之前:

res.send(result.join())