Sql server 将node.js中的数据存储到sql数据库

Sql server 将node.js中的数据存储到sql数据库,sql-server,node.js,stored-procedures,insert,Sql Server,Node.js,Stored Procedures,Insert,我试图将从客户端接收到的结果数据存储到sql数据库中,但是我遇到了这些错误 TypeError:request.query(…)。then不是函数 TypeError:回调不是函数 我对node.js和sql数据库还很陌生。我花了相当多的时间来思考这些问题,但不确定从哪里开始,, 我试图删除。然后,它工作正常,但仍然抛出第二个错误。有人能就这个问题提出建议吗 node.js //Receive from Angular Server const express = require('expre

我试图将从客户端接收到的结果数据存储到sql数据库中,但是我遇到了这些错误

  • TypeError:request.query(…)。then不是函数
  • TypeError:回调不是函数
  • 我对node.js和sql数据库还很陌生。我花了相当多的时间来思考这些问题,但不确定从哪里开始,, 我试图删除。然后,它工作正常,但仍然抛出第二个错误。有人能就这个问题提出建议吗

    node.js

    //Receive from Angular Server 
    const express = require('express');
    const bodyParser = require('body-parser');
    const app = express();
    
    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded({ extended: true }));
    
    app.all("/*", function (req, res, next) {
      res.header('Access-Control-Allow-Origin', '*');
      res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');
      res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization, Content-Length, X-Requested-With');
      next();
    });
    
    app.listen(1433, function () { console.log('Example app listening on port 1433!') })
    
    var sql = require('mssql');
    var config = {
      server: "",
      database: "",
      user: "",
      password: "",
      port: 
    };
    
    
    app.post('/ping', function (req, res) {
      res.send(res.body);
      var jsondata = JSON.stringify(req.body);
      var test = JSON.parse(jsondata);
    
      var values = [];
      values.push(test.GradeA, test.GradeB, test.GradeC)
      console.log(values);
      //values = [ '25', '36', '32' ] 
    
        var dbConn = new sql.Connection(config);
        dbConn.connect().then(function () {
          var transaction = new sql.Transaction(dbConn);
    
          transaction.begin().then(function () {
            var request = new sql.Request(transaction);
    
            request.query("INSERT INTO RMS (GradeA, GradeB, GradeC) values VALUES ? ", [values])
              .then(function () {
                transaction.commit().then(function (recordSet) {
                  console.log('Rows Affected :' + request.rowsAffected);
                  dbConn.close();
    
                }).catch(function (err) {
    
                  console.log("Error in Transaction Commit" + err);
                  dbConn.close();
                });
              }).catch(function (err) {
    
                console.log("Error in Transaction Begin" + err);
                dbConn.close();
              });
    
          }).catch(function (err) {
    
            console.log(err);
            dbConn.close();
          });
        }).catch(function (err) {
    
          console.log(err);
        });
      });
    
    request.query(“插入RMS(等级A、等级B、等级C)值?”,[values])
    应该是给出错误的行。它假定第二个参数应该是function。当传递第二个参数时,它不会返回承诺,因此没有
    then
    方法

    mssql
    模块似乎不支持以您尝试的方式进行转义。它支持输入法,可用于将数据注入查询。从文档:

    request
    .input('input_parameter', sql.Int, value)
            .query('select * from mytable where id = @input_parameter'
    
    request.query(“插入RMS(等级A、等级B、等级C)值?”,[values])
    应该是给出错误的行。它假定第二个参数应该是function。当传递第二个参数时,它不会返回承诺,因此没有
    then
    方法

    mssql
    模块似乎不支持以您尝试的方式进行转义。它支持输入法,可用于将数据注入查询。从文档:

    request
    .input('input_parameter', sql.Int, value)
            .query('select * from mytable where id = @input_parameter'
    

    我用request.input('input_parameter',sql.Int,values.).query('INSERT-INTO-Test(GradeA,GradeB,GradeC)values?',[values])替换了导致错误的行,但仍然给出了相同的错误,或者还有其他方法比我尝试的方法更好吗?您仍然在传递第二个参数
    [values]
    。尝试此
    request.input('gradea','24')。input('gradeb','43')。input('gradec','21')。query('INSERT INTO RMS(PlanW,ActualW,OrW)值(@gradea,@gradeb,@gradec))
    我必须指定每个值吗?我可以不传递数组参数吗?文档似乎没有提供使用arraysry的方法,我对node.js很陌生。当从客户端接收JSON数据时,我可以直接将这些JSON存储到sql数据库中吗?我将导致错误的行替换为request.input('input_参数',sql.Int,values.).query('INSERT-into-Test(GradeA,GradeB,GradeC)values?,[values]),但仍然给出相同的错误,,或者还有其他方法比我尝试的方法更好吗?您仍然在传递第二个参数
    [values]
    。尝试此
    request.input('gradea','24')。input('gradeb','43')。input('gradec','21')。query('INSERT INTO RMS(PlanW,ActualW,OrW)值(@gradea,@gradeb,@gradec))
    我必须指定每个值吗?我可以不传递数组参数吗?文档似乎没有提供使用arraysry的方法,我对node.js很陌生。当从客户端接收JSON数据时,我可以直接将这些JSON存储到sql数据库中吗?