【发布时间】:2015-02-12 18:17:57
【问题描述】:
我遇到了 javascript/node js 函数的问题。
当我发送一个带有“request.service.mssql”对象的函数查询的sql查询时,结果函数被调用了两次......
我不明白,因为我的sql查询是“更新”,结果为空(我没有多行结果)
例如,我有一个使用新密码发送电子邮件的功能。电子邮件发送了两次...我找到了一个带有索引的临时解决方案,但它不是很干净。
你能解释一下吗?
//construct SQL query
var email = "test@toto.com";
var password = require("crypto").randomBytes(4).toString('hex');
var password_md5 = require("crypto").createHash("md5").update(password).digest("hex");
var sql = "update dbo.mytable SET password='"+password_md5+"' where id=12";
var id = 0; //temp solution
mssql.query(sql,
{
success: function(results) {
//Send email with new pwd
if(id == 0) {
response.send(statusCodes.OK,password_md5);
sendEmail(email,password);
}
id++; //temp solution
},
error: function(err) {
response.send(statusCodes.INTERNAL_SERVER_ERROR,"Error : " + err);
}
});
谢谢你:-)
史蒂夫
【问题讨论】:
-
我强烈怀疑问题出在其他地方,因为您的代码对我来说似乎有效。如果整个代码块被调用两次怎么办?请在此处添加
console.log("IS CALLED");作为第一行(var email ...之前)。在深入挖掘之前,让我们摆脱最明显的错误:) -
大功告成:“IS CALLED”只出现一次。
-
如果我删除 id=0 / id++,我会在我的日志中收到 2 封邮件和 1 个“IS CALLED”...
-
对不起史蒂夫,我没有任何线索给你。
-
好的,谢谢您的帮助。我将继续使用我的身份...
标签: node.js azure azure-sql-database