【发布时间】:2016-01-10 05:37:48
【问题描述】:
我有一个小模块,可以作为我的数据模型。它位于我的路线和特定数据(在我的情况下为用户数据)的数据库之间。
我在我的路由代码中需要这个模块,调用它拥有的subscribe 方法,并通过将所需数据存储在我的数据库中来为用户订阅特定的邮件列表。耶!
我的“订阅”方法接受电子邮件和电子邮件列表 ID 作为两个参数。我将草率而快速地编写代码并为不存在的列表放入一个 id 是合理的。拼写错误,你说吧。
如何抛出错误并指向具有不正确 id 的行号?
model/user.js 内部的代码:
if (emailLists.indexOf(listId) === -1) {
throw new Error('listId does not exist');
}
route.js 内部的代码:
user.subscribe('fake@email.com', 'knewsletterr', function (error, success) {
if (error) { return sendResponse(500, 'Ahhhhhhh!'); }
if (!error) { return sendResponse(200, 'subscribed'); }
});
现在,我得到:
/home/.../project/models/user.js:85
if (emailLists.indexOf(listId) === -1) { throw new Error('listId does not exist'); }
^
Error: listId does not exist
【问题讨论】:
-
你的源代码中没有定义listId变量
-
哈哈,我知道了。我是那个抛出错误的人。我只想知道如何将适当的行号和文件名与错误一起抛出。
-
var e = new Error("asdf"); console.log(e.stack)
标签: javascript node.js error-handling