1
私は店結果データにしようとしていますが、しかし私は、これらのエラーはストアデータ
- TypeError: request.query(...).then is not a function
- TypeError: callback is not a function
私はNode.jsのとSQLに非常に新しいです取得しています、SQLデータベースにクライアント側から受け取りましたデータベース。私はかなりの時間これらを把握するためにどこを起動するかわからない、 私は削除しようとしました。それはうまく動作しますが、まだ2番目のエラーをスローします。誰もこの問題についてアドバイスをしていただけますか?
の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.input( 'input_parameter'、sql.Int、値).query(とエラーが発生する行に置き換え、 'INSERT INTOテスト(GradeA、GradeB、GradeC)VALUESを?' [値])、やはり私に同じエラーが出る、または私がやろうとしているやり方よりも良い方法がありますか? –
あなたはまだ第2引数 '[values]'を渡しています。この 'request.input(' gradea '、' 24 ')入力(' gradeb '、' 43 ')入力(' gradec '、' 21 ')。 )VALUES(@gradea、@gradeb、@gradec)) ' –
それぞれの値を指定する必要がありますか?私は配列パラメータを渡すことはできません –