gpt4 book ai didi

javascript - OUT 在命令行中总是为空,但在 SQL 客户端中却不是?

转载 作者:行者123 更新时间:2023-11-29 18:29:57 25 4
gpt4 key购买 nike

我正在尝试在 MySQL 中执行存储例程,当我在 HeidiSQL 中运行它时,它运行得很好,按预期返回一条消息,但是当我使用 NodeJS 运行它时,返回消息始终为空。

var mysql = require('mysql');

var con = mysql.createConnection({
host: '',
user: '',
password: '',
database: '',
multipleStatements: true
});

con.connect(function(err) {
if(err) throw err;
console.log("Connection Established!");
});

var AddPointsDiscord =
"CALL AddPointsDiscord(?,?,@RETURN_MESSAGE);"+
"SELECT @RETURN_MESSAGE;";

var user = '';
var ScoreAdded = 1;
var ReturnMessage = '';

con.query(AddPointsDiscord, [user, ScoreAdded, ReturnMessage], function(err, result) {
if(err) throw err;
console.log(ReturnMessage);
});

参数是:

  • USER - Discord ID 的 Varchar(IN)
  • ADD_SCORE - 添加给用户的新分数 (IN)
  • RETURN_MESSAGE - 应返回的消息(OUT)

我哪里出错了?

最佳答案

您可能会在这里遇到异步行为:您的函数在数据库返回查询结果之前就已完成。

要捕获异步行为,请使用回调功能:

con.query(AddPointsDiscord, [user, ScoreAdded, ReturnMessage], function(err, result) {
if (err)
callback(err,null);
else
callback(null,ReturnMessage);
});

关于javascript - OUT 在命令行中总是为空,但在 SQL 客户端中却不是?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45773401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com