【发布时间】:2016-07-05 21:37:05
【问题描述】:
我正在尝试在 android 上实现一个用户注册系统,并将 node 作为我的后端服务器。
我在 localhost 上使用 Node 4.4.5,并使用包“email-verification” - https://www.npmjs.com/package/email-verification
因此,应 android 的要求,发送了一封带有验证链接的确认电子邮件,它工作正常。
当点击链接时,会发出一个 GET 请求,确认用户,将其添加到 MongoDB 数据库,并发送 JSON 响应。
会向用户发送一封电子邮件,说明帐户已确认。
发送确认邮件后,服务器崩溃。
这是我的代码--
router.get('/email-verification/:URL', function(req, res, next){
var url = req.params.URL;
console.log('email-verify-start');
nev.confirmTempUser(url, function(err, user) {
console.log('error is :' + err);
if (user) {
nev.sendConfirmationEmail(user.email, function(err, info) {
if (err) {
console.log('sending_conf_email_failed');
return res.json({'email': 'sending_conf_email_failed'});
}
console.log('user_confirmed');
res.json({
'email': 'user_confirmed'
});
console.log('Done, and confirmed');
});
} else {
console.log('conf_temp_ser_failed');
return res.json({'email': 'conf_temp_ser_failed'});
}
});
});
这是我的日志--
error is :null
user_confirmed
Done, and confirmed
GET /register/email-verification/SfC9VlnUv91RkFBHDURIbHodnYme0RdfbTYBj0I4oXyywrpW 200 5177.724 ms - 26
h:\myapp\coep_updates\node_modules\email-verification\node_modules\nodemailer\node_modules\nodemailer-smtp-transport\src\smtp-transport.js:136
return callback(null, info);
^
TypeError: callback is not a function
at h:\myapp\coep_updates\node_modules\email-verification\node_modules\nodemailer\node_modules\nodemailer-smtp-transport\src\smtp-transport.js:136:20
at h:\myapp\coep_updates\node_modules\email-verification\node_modules\nodemailer\node_modules\nodemailer-smtp-transport\node_modules\smtp-connection\src\smtp-connection.js:279:20
at SMTPConnection._actionStream (h:\myapp\coep_updates\node_modules\email-verification\node_modules\nodemailer\node_modules\nodemailer-smtp-transport\node_modules\smtp-connection\src\smtp-connection.js:966:16)
at SMTPConnection.<anonymous> (h:\myapp\coep_updates\node_modules\email-verification\node_modules\nodemailer\node_modules\nodemailer-smtp-transport\node_modules\smtp-connection\src\smtp-connection.js:594:14)
at SMTPConnection._processResponse (h:\myapp\coep_updates\node_modules\email-verification\node_modules\nodemailer\node_modules\nodemailer-smtp-transport\node_modules\smtp-connection\src\smtp-connection.js:516:16)
at SMTPConnection._onData (h:\myapp\coep_updates\node_modules\email-verification\node_modules\nodemailer\node_modules\nodemailer-smtp-transport\node_modules\smtp-connection\src\smtp-connection.js:353:10)
at emitOne (events.js:77:13)
at TLSSocket.emit (events.js:169:7)
at readableAddChunk (_stream_readable.js:153:18)
at TLSSocket.Readable.push (_stream_readable.js:111:10)
at TLSWrap.onread (net.js:531:20)
Process finished with exit code 1
直到服务器崩溃,一切正常。我收到了所有电子邮件并且回复都正确发送,我什至在我的浏览器上看到 JSON 回复 {"email":"user_confirmed"}。唯一的问题是服务器随后崩溃。
编辑 1
我尝试添加返回语句 - 仍然是同样的问题。我在这里添加了它们--
return res.json({
'email': 'user_confirmed'
});
我也尝试添加一个返回--
res.json({
'email': 'user_confirmed'
});
return;
到目前为止还没有运气......
编辑 2
好的。所以这实际上是 GitHub 上的一个未解决问题,这被报告为一个错误。
https://github.com/whitef0x0/node-email-verification/issues/44
【问题讨论】:
-
我也有同样的问题..我无法解决github中提到的问题..你能告诉我第340行所在的文件吗变了吗?
-
同样的问题@Parag Verma,即使通过 github 解决方案也无法解决.....如果您能提供帮助,那就太好了。谢谢
-
@kRAk3N 请看我的回答
-
谢谢.. 成功了
标签: android node.js mongodb email express