【发布时间】:2015-05-01 19:40:08
【问题描述】:
我正在尝试将现有的 node.js 项目从 javascript 转换为 typescript。我一直在使用 Visual Studio Express 4 模板中的默认 404 错误捕获器:
// catch 404 and forward to error handler
app.use(function (req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
但是,我收到以下错误消息: 类型“错误”上不存在属性“状态”。
如果我尝试调用错误的 .stack 属性,我会收到类似的消息: “错误”类型上不存在属性“堆栈”。
有人知道这里发生了什么吗?
编辑: Steve Fenton 指出我可以将错误状态放在响应对象上。但是,我的错误处理机制使用了两步过程:
- 创建 404 错误并设置其状态
-
将其交给以下通用处理程序:
app.use(function (err, req, res, next) { res.status(err.status || 500); res.render('error', { message: err.message, error: {} }); });
所以首先在Error对象上设置错误状态,然后由错误处理程序回读以决定如何处理错误。
【问题讨论】:
标签: javascript node.js express typescript