一尘不染

在Express中处理robots.txt的最聪明方法是什么?

node.js

我目前正在使用Express(Node.js)构建的应用程序,我想知道在不同环境(开发,生产)下处理不同robots.txt的最聪明方法是什么。

这是我现在所拥有的,但是我对解决方案不满意,我认为它很脏:

app.get '/robots.txt', (req, res) ->
  res.set 'Content-Type', 'text/plain'
  if app.settings.env == 'production'
    res.send 'User-agent: *\nDisallow: /signin\nDisallow: /signup\nDisallow: /signout\nSitemap: /sitemap.xml'
  else
    res.send 'User-agent: *\nDisallow: /'

(注意:这是CoffeeScript)

应该有更好的方法。你会怎么做?

谢谢。


阅读 232

收藏
2020-07-07

共1个答案

一尘不染

使用中间件功能。这样,robots.txt将在任何会话,cookieParser等之前进行处理:

app.use('/robots.txt', function (req, res, next) {
    res.type('text/plain')
    res.send("User-agent: *\nDisallow: /");
});

app.get现在,借助express 4 可以按显示顺序处理它,因此您可以使用它:

app.get('/robots.txt', function (req, res) {
    res.type('text/plain');
    res.send("User-agent: *\nDisallow: /");
});
2020-07-07