使用Node.js连接到SQL Server不';行不通
我有一个大问题:我想连接到MS SQL Server,但无论我在做什么,它都不起作用。。。我不知道我的错误在哪里使用Node.js连接到SQL Server不';行不通,node.js,sql-server,Node.js,Sql Server,我有一个大问题:我想连接到MS SQL Server,但无论我在做什么,它都不起作用。。。我不知道我的错误在哪里 const parse = require("csv-parse/lib/sync"); const fs = require("fs"); const path = require("path"); var mssql = require('mssql/msnodesqlv8'); var iconv = require('iconv-lite'); var http = requ
const parse = require("csv-parse/lib/sync");
const fs = require("fs");
const path = require("path");
var mssql = require('mssql/msnodesqlv8');
var iconv = require('iconv-lite');
var http = require('http');
// Connection to SSMS Database
var dbConfig = {
host: 'localhost',
user: 'user',
server: 'server',
database: 'database',
options: {
trustedConnection: true,
useUTC: true
}
};
var connection = new mssql.Connection(dbConfig, function(err) {
var request = new mssql.Request(connection);
...
request.query(`INSERT INTO ${richtigername} (${namen}) VALUES (${values})`, function (err, recordset) {
if (err) {
console.log(err);
res.send(recordset)
}
mssql.close();
});
现在出现错误消息:
TypeError:请求不是函数
将数据导入SQL Server数据库非常困难。。该工具在MySQL上运行良好,但SQL Server非常糟糕
在此之前,我还有两个查询:request.query(…)
和if(err){console.log(err);res.send(recordset)
…另一方面,MySQL非常简单…只是
connection.query(…)
在此之前
// Verbindung zur MySQL Datenbank
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'password',
database: 'database'
});
and
// Verbindung zur Datenbank starten
connection.connect((error) => {
if (error) {
console.error(error);
} else {
}
})
}
首先,分配一个连接池,然后使用它来运行SQL。本例使用存储过程,但很容易修改以运行查询
var express = require('express');
var app = express();
app.get('/', function (req, res) {
var sql = require("mssql");
// config for your database
var config = {
user: 'user',
password: 'yourpassword',
server: 'yourserver',
database: 'yourdb'
};
new sql.ConnectionPool(config).connect().then(pool => {
return pool.request()
// for select query, uncomment .query and comment .input and .execute
//.query("select * from table1 where id = 2")
// for stored proc, comment .query and uncomment .input and .execute
// .input is only needed if proc has params
.input('p_id', sql.Int, 5)
.execute('getData')
}).then(result => {
let rows = result.recordset
res.setHeader('Access-Control-Allow-Origin', '*')
res.status(200).json(rows);
sql.close();
}).catch(err => {
console.log(err);
res.status(500).send({ message: "${err}"})
sql.close();
});
});
var server = app.listen(5000, function () {
console.log('Server is running..');
});
首先,SSMS不是数据库,它是一个客户端工具。您正在连接SQL Server。其次,请编辑您的问题并添加以下信息。您是否确实安装了SQL Server?您可以使用客户端工具(SSMS)连接到它吗哦,我知道;)是的,我有sql server express和SSMS,还有SSMS中的数据库;)假设您想从Node.js连接到sql server。本文档部分介绍如何(繁琐),和@Frederic您编写的也不是MySQL查询。您通过字符串插值创建了一个SQL字符串,使您面临SQL注入攻击。您可以在SQL Server中使用相同的字符串,但不能这样做。SQL Server的doc示例演示了如何使用参数。MySQL还支持参数。虽然您不需要按名称传递参数,但可以我们还没有确定您是否安装了SQL Server