【发布时间】:2019-01-27 12:50:12
【问题描述】:
在 node.js 中使用全局数据库连接时,我无法执行 sql。
我已按照 Azure 文档中的步骤操作:https://docs.microsoft.com/en-us/azure/mysql/connect-nodejs 并且能够在控制台上显示输出。但是,我想将所有 Azure SQL 数据库连接放在一个单独的文件中,但是选择查询不会在控制台上打印输出。
DatabaseManager.js
var Connection = require('tedious').Connection;
var Request = require('tedious').Request;
var sqlConnection = function sqlConnection() {
// Create connection to database
var config =
{
userName: 'uname',
password: 'password',
server: 'dbserver.database.windows.net',
options:
{
database: 'mydatabase',
encrypt: true
}
}
var connection = new Connection(config);
// Attempt to connect and execute queries if connection goes through
connection.on('connect', function(err) {
if (err)
{
console.log(err)
}
else
{
console.log('CONNECTED TO DATABASE');
}
}
);
}
module.exports = sqlConnection;
app.js
var restify = require('restify');
var builder = require('botbuilder');
var botbuilder_azure = require("botbuilder-azure");
var azure = require('azure-storage');
var dbconnection = require('./DatabaseManager');
bot.dialog('profileDialog',
(session) => {
session.send('You reached the profile intent. You said \'%s\'.', session.message.text);
console.log('Reading rows from the Table...');
dbconnection("select FNAME from StudentProfile where ID=1"),
function (err, result, fields) {
if (err) throw err;
console.log(result);
}
session.endDialog();
}
控制台输出:
正在从表中读取行...
连接到数据库
我期待 FNAME 的输出,但控制台上没有打印任何内容。有什么,我失踪了吗?
谢谢。
【问题讨论】:
-
你为什么会这样想?在任何时候,您都不会实际执行该 SQL 语句。
-
@James,也许我这样做是错的。这是我的第一个 js 代码。我还尝试了类似 dbconnection.query() 的方法,但显示的方法无效。有什么建议可以纠正这个问题,以便执行查询?
标签: javascript node.js azure-sql-database node-modules