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

时间:2015-02-05 10:48:58

标签: node.js azure azure-sql-database

我遇到了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);
    }
}); 

谢谢: - )

史蒂夫

1 个答案:

答案 0 :(得分:0)

我在另一个论坛上得到了答案:我必须使用set nocount on;命令为我的SQL语句添加前缀。

感谢您的帮助。

史蒂夫