Sql server 将node.js中的数据存储到sql数据库
我试图将从客户端接收到的结果数据存储到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
//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数据库中吗?