将服务器错误消息传递给客户端(使用Express和Backbone)

时间:2013-08-30 18:20:40

标签: node.js backbone.js express typescript

我一直在挣扎,并且很难弄清楚如何将服务器错误消息传递给客户端。

在服务器上我(简化):

export function get(req: express.ExpressServerRequest, res: express.ExpressServerResponse) {
    res.statusCode = 500;
    res.send('CUSTOM ERROR MESSAGE');
}

在客户端:

public fetchObject(successF: Function, failF: Function): void {
    this.myObj = new MyObj();
    this.myObj.fetch({ success: successF, error: failF });
}


private failF(model, xhr, options): void {
   // Want to get access to "CUSTOM ERROR MESSAGE"
}

xhr对象responseText为空,statusText始终为“error”。

有什么建议吗?谢谢!

1 个答案:

答案 0 :(得分:1)

找到解决方案。定义一个类变量并捕获fetch调用的返回值:

private xhr: XMLHttpRequest = null;

然后:

public fetchObject(successF: Function, failF: Function): void {
    this.myObj = new MyObj();
    this.xhr = this.myObj.fetch({ success: successF, error: failF });
}

最后:

private failF(model, xhr, options): void {
    doSomething(this.xhr.responseText);
}

this.xhr将包含reponseText(即“CUSTOM ERROR MESSAGE”)。本地xhr仍然是一个空白字符串。

我仍然不确定为什么会这样,如果有人有一些见解,我会很感激。