【发布时间】:2017-08-15 15:32:08
【问题描述】:
我在 azure sql 上查询我的数据库时遇到了一些问题(我对 sql 非常陌生)。我正在按照https://docs.microsoft.com/en-us/azure/sql-database/sql-database-connect-query-nodejs 上的步骤进行操作,但它只包括有关如何读取表格的教程步骤,而不是操作它们。我正在尝试在我的 Node.js 服务器上执行 INSERT 和 DELETE 请求,但我在其中一个节点模块中收到请求错误,这让我认为我正在请求错误的操作。
这里有一些代码:
var Connection = require('tedious').Connection;
var Request = require('tedious').Request;
// Create connection to database
var config =
{
userName: 'user_name',
password: 'password',
server: 'server_name',
options:
{
database: '_dbname'
, 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 {
queryDatabase();
}
}
//this works fine, it's for initially loading the data from the database
function queryDatabase() {
console.log('\nReading rows from the Table...');
let obj = {};
let objs = [];
let request;
// Read all rows from table
request = new Request(
"SELECT * FROM [dbo].[TABLE_NAME]",
function (err, rowCount, rows) {
console.log('-- Done');
}
);
//this is for when an admin adds content to the app, SQL table not changing,
//node.js throws error
socket.on('add item', item => {
let index = getCollectionIndexById(item.id);
collections[index].items.push(item.item);
io.sockets.emit('add item', item);
request = new Request(`INSERT INTO [dbo].[TABLE_NAME](Id, attr1, attr2, attr3, attr4)
VALUES (`
+ item.id + ','
+ item.item.attr2 + ','
+ item.item.attr3 + ','
+ item.item.attr4 + ','
+ null, function (err, rowCount, rows) {
if (err) throw err;
console.log('> requested db to insert item');
});
connection.execSql(request);
console.log('> item sent to app');
});
//for when the admin removes content from the app, same error
socket.on('rm item', item => {
collections[getCollectionIndexById(item.id)].items.splice(item.index, 1);
io.sockets.emit('rm item', { "id": item.id, index: item.index });
request = new Request(`DELETE FROM [dbo].[TABLE_NAME] WHERE Id= `
+ item.id + ` AND attr1= ` + item.item.attr1, function (err, rowCount, rows) {
if (err) throw err;
console.log('> requested db to remove item')
});
connection.execSql(request);
console.log('> sent request to remove item');
});
确切的错误消息是RequestError: Incorrect syntax near 'esse'.,它位于request.js 中称为tedious 的节点模块之一中。
总之,如果有人知道查询 Azure SQL Db 以进行插入和删除的方法,我们将不胜感激!
【问题讨论】:
标签: node.js azure azure-sql-database