节点/角度应用程序 - Angular路径中是否可以使用404代码?

时间:2017-01-30 10:45:22

标签: angularjs node.js express

我只是查看了我的网络应用上的抓取统计信息,并注意到Google抓取工具尝试点击不存在的网址,我也没有任何链接 - 例如:

https://www.example.com/-/results/k/Laptop+Notebook/

https://www.example.com/dasdhkjdsa7di3hdd

现在,当我查看统计数据时,我看到Cache命中是错过的,但状态代码是200,我认为理想情况下应该是404。

现在在Angular方面,在我的路线文件中,最后我有代码:

.otherwise(
    {redirectTo:'/'}
  )

因此,重定向这些随机URL时。但是,我如何发送404代码呢?

我想知道它实际上是否可能,即我不需要在我的节点服务器端执行此操作。我尝试了以下内容 - 但是我遇到了问题。

如果我在处理HTML5Mode Urls的部分之前放置res.status(404)代码,那么一旦显示404错误,如果我回到工作URL(主页除外),它会错误地显示404

如果我将res.status(404)代码放在AFTER之后,则Angular otherwise会接管并简单地重定向到/

app.use(express.static('site'));

//For Angular HTML5Mode Urls
app.get('/*', function(req, res) {
  res.sendFile(__dirname + '/site/index.html')
});

app.use((req,res,next)=>{
 res.status(404).send("Sorry that page doesn't exist!");
});

任何帮助都将不胜感激。

感谢。

0 个答案:

没有答案