当前位置: 首页 > 面试题库 >

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

西门淮晨
2023-03-14
问题内容

我目前正在使用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: /");
});

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

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


 类似资料:
  • 问题内容: 那就是我的做法: 有什么好处吗?如何避免那些意粉般的代码? 问题答案: 检出异步库,它用于控制流(异步内容),并且它有很多用于数组内容的方法:每种方法,过滤器,映射。查看github上的文档。这可能是您需要的: 每个(arr,迭代器,回调) 将迭代器函数并行应用于数组中的每个项目。调用迭代器时,将使用列表中的项目以及完成时的回调。如果迭代器将错误传递给此回调,则该函数的主回调将立即被错

  • 有没有更聪明的方法来定义这样的字典: 类字段定义: 稍后访问: ... 第二项不起作用,尽管数组可以通过以下方式初始化:

  • 问题内容: 我有一个方法可以执行一些超时任务。我使用ExecutorServer.submit()获取Future对象,然后使用超时调用future.get()。这工作正常,但是我的问题是处理可能由我的任务引发的检查异常的最佳方法。以下代码可以正常工作,并保留检查的异常,但是如果方法签名中的检查的异常列表发生更改,则显得非常笨拙且容易中断。 对于如何解决这个问题,有任何的建议吗?我需要以Java

  • 问题内容: 我已经开始使用Spring 3进行新项目,并且正在使用注释。我喜欢我可以连接我的类以注入依赖项,但是我知道从基本包开始是一个不好的做法。 我正在使用一个具有自己的xml配置文件的文件。在那也是。刚开始学习Spring时,我在组件扫描中重叠了,看到多次创建bean。我想避免这种情况。 什么是组织我的程序包或组件扫描以覆盖所有bean而不重复的好方法? 目前,我有这样的软件包: 如果我在所

  • 问题内容: 在Java中,Web应用程序捆绑在WAR中。默认情况下,许多servlet容器将WAR名称用作应用程序的上下文名称。 因此,myapp.war被部署到http://example.com/myapp。 问题在于,Web应用程序将其“根”视为“根”,或者仅仅是“ /”,而HTML会将您的应用程序的根视为“ / myapp”。 Servlet API和JSP具有帮助进行管理的工具。例如,如

  • 问题内容: 我有一个针对客户的减速器,另一个针对AppToolbar的减速器,还有一些其他的减速器… 现在让我们说我创建了一个删除客户端的提取操作,如果失败,我在Clients reducer中会有代码,该代码应该做一些事情,但是我也想在AppToolbar中显示一些全局错误。 但是客户端和AppToolbar减速器不共享状态的同一部分,因此我无法在减速器中创建新的动作。 那么我应该如何显示全局错