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



我已经研究了一段时间,很难弄清楚如何将服务器错误消息传递给客户端。

在服务器上我有(简化):

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"。

有什么建议吗?谢谢

找到了一个解决方案。定义一个类变量并捕获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(即"自定义错误消息")。本地xhr仍然是一个空白字符串。

我仍然不确定为什么会出现这种情况,如果有人有一些见解,我将不胜感激。

最新更新