使用Node.js连接到SQL Server无效

时间:2019-11-22 10:48:30

标签: 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 = 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 {

        }

    }) 
}

1 个答案:

答案 0 :(得分:0)

首先,分配一个连接池,然后使用该连接池运行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..');
});