gpt4 book ai didi

azure - 从 JS 中的 Azure Functions 连接到 Azure SQL DB

转载 作者:行者123 更新时间:2023-12-04 16:05:55 26 4
gpt4 key购买 nike

我正在尝试从用nodeJS编写的azure函数连接到我的Azure SQL DB。我已经在应用程序设置中设置了连接字符串,但它仍然不起作用。我使用 ODBC key 进行连接设置。有人尝试过这个吗?下面是我的函数的示例代码

var Connection = require('tedious').Connection;
var Request = require('tedious').Request;

// Create connection to database
const config = process.env["sqldb_connection"];
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
{
queryDatabase()
}
}
);

function queryDatabase()
{ console.log('Reading rows from the Table...');

// Read all rows from table
request = new Request(
"SELECT ORG_ID,ORG_NAME FROM org",
function(err, rowCount, rows)
{
console.log(rowCount + ' row(s) returned');
process.exit();
}
);

request.on('row', function(columns) {
columns.forEach(function(column) {
console.log("%s\t%s", column.metadata.colName, column.value);
});
});
connection.execSql(request);
}

我收到一条错误消息

Exception while executing function: Functions.HttpTriggerJS2. mscorlib: The given key was not present in the dictionary.

最佳答案

  1. D:\home\site\wwwroot 下的 Kudu 远程执行控制台中运行 npm install tedious 命令。

  2. 在 Azure Functions 中,所有代码都应放入 module.exports 函数内。

  3. 您应该使用 context.log() 而不是 console.log()

  4. 您实际上不必在该函数的应用程序设置中设置连接设置字符串。

  5. 当代码完成时,您应该通过调用 context.done() 通知运行时。

以下代码对我有用:

var Connection = require('tedious').Connection;
var Request = require('tedious').Request;

module.exports = function (context, req) {
context.log('JavaScript HTTP trigger function processed a request.');

var config = {
userName: '<userName>',
password: '<password>',
server: '<AzureSQLDBName>.database.windows.net',

// If you're on Windows Azure, you will need this:
options:
{
database: 'your DB',
encrypt: true
}
};

var connection = new Connection(config);

connection.on('connect', function(err) {

if (err) {
context.log(err);

context.res = {
status: 500,
body: "Unable to establish a connection."
};
context.done();

} else {
executeStatement();
}
});

function executeStatement() {

request = new Request("select 42, 'hello world'", function(err, rowCount) {
if (err) {
context.log(err);

context.res = {
status: 500,
body: "Failed to connect to execute statement."
};
context.done();

} else {
context.log(rowCount + ' rows');
}
});

request.on('row', function(columns) {
columns.forEach(function(column) {
context.log(column.value);
});

context.done();
});

connection.execSql(request);
}
};

有关详细信息,请参阅Azure Functions JavaScript developer guide .

关于azure - 从 JS 中的 Azure Functions 连接到 Azure SQL DB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48773289/

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