路线404.html为快速应用程序

我已经看到很多post解决这个问题,但似乎没有为我工作,许多解决scheme使用不推荐的方法。

我有静态文件目录已经build立:

app.use(express.static(__dirname + "/public", {maxAge: 86400000*30 })); 

然后我在该公共目录中有一个自定义的404.html页面。 现在,任何不正确的URL应该被路由到那个404.html页面。 我已经尝试了以下内容:

 app.use(function(req, res, next){ res.render("404.html", { url: req.url }); }); 

但是我得到了回应:

 Error: Cannot find module 'html' 

我做错了什么,为什么这么简单的事情太难了?

尝试将您的快递版本升级到最新版本

编辑(从@mscdex更正的版本)

 app.get('/api', function(req, res) { ..... res.status(404).sendFile(__dirname + '/public/404.html'); }); 

http://expressjs.com/api.html#res.status

在所有其他中间件和路由处理程序之后放置这样的东西:

 app.use(function(req, res) { res.sendFile(__dirname + '/public/404.html'); });