1. ホーム
  2. node.js

Expressでrobots.txtを処理する最もスマートな方法は何ですか?

2023-08-27 03:05:05

質問

現在、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です)

もっといい方法があるはずです。あなたならどうしますか?

ありがとうございます。

どのように解決するのですか?

ミドルウェアの関数を使用します。こうすることで、robots.txtはセッションやCookieParserなどの前に処理されるようになります。

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

エクスプレス4で app.get は表示順に処理されるようになったので、それを利用すればよいでしょう。

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