Node.js 节点js函数:sql查询结果调用两次

Node.js 节点js函数:sql查询结果调用两次,node.js,azure,azure-sql-database,Node.js,Azure,Azure Sql Database,我对javascript/node js函数有问题 当我使用request.service.mssql对象的函数query发送sql查询时,结果函数被调用两次 我不明白,因为我的sql查询是一个更新,结果是空的,所以我没有多行结果 例如,我有一个功能,用新密码发送电子邮件。电子邮件发送两次。。。我找到了一个带有索引的临时解决方案,但它不是很干净 你能解释一下吗 谢谢各位:- Steve我在另一个论坛上得到了答案:我必须在我的SQL语句前面加上SETNOCOUNT on;指挥部 谢谢你的帮助 St

我对javascript/node js函数有问题

当我使用request.service.mssql对象的函数query发送sql查询时,结果函数被调用两次

我不明白,因为我的sql查询是一个更新,结果是空的,所以我没有多行结果

例如,我有一个功能,用新密码发送电子邮件。电子邮件发送两次。。。我找到了一个带有索引的临时解决方案,但它不是很干净

你能解释一下吗

谢谢各位:-


Steve

我在另一个论坛上得到了答案:我必须在我的SQL语句前面加上SETNOCOUNT on;指挥部

谢谢你的帮助


Steve

我强烈怀疑问题出在别处,因为我认为您的代码是有效的。如果整个代码块被调用两次呢?请添加被调用的console.logIS;作为var电子邮件之前的第一行。。。。在深入挖掘之前,让我们先排除最明显的错误:完成了:调用只出现一次。如果我删除id=0/id++,我会收到两封邮件,日志中会调用一封……对不起,史蒂夫,我没有任何线索给你。好的,谢谢你的帮助。我将继续我的id。。。
//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);
    }
});