Javascript 无法将数据插入sqlserver、nodejs

Javascript 无法将数据插入sqlserver、nodejs,javascript,sql-server,node.js,Javascript,Sql Server,Node.js,我刚刚制作了一个简单的程序来显示和插入数据库中的数据(SQLServer2008)。我的代码不显示数据。我无法插入数据。它在终端或浏览器中显示无错误 Here is my javascriptfile var express = require('express'); var app = express(); app.use(express.static('public')); app.get('/htm', function (req, res) { res.sendFile( __dirna

我刚刚制作了一个简单的程序来显示和插入数据库中的数据(SQLServer2008)。我的代码不显示数据。我无法插入数据。它在终端或浏览器中显示无错误

Here is my javascriptfile
var express = require('express');
var app = express();
app.use(express.static('public'));
app.get('/htm', function (req, res) {
res.sendFile( __dirname + "/" + "index.html" );
})
var sql = require("mssql");
var config = {
    user: 'pkp',
    password: 'pkp',
    server: 'PRAVEEN\\SQLEXPRESS', 
    database: 'myneww' 
 };
app.get('/process_get', function (req, res) {

   // Prepare output in JSON format
   response = {
   first_name:req.query.first_name,
   last_name:req.query.last_name
   };
 sql.connect(config, function (err) {
    if (err) console.log(err);
    var request = new sql.Request();
    console.log(req.query.first_name);
    var res=request.query('insert into Mytab values(req.query.first_name ,req.query.last_name)');
    });
});

app.get('/alldata', function (req, res) {   
 sql.connect(config, function (err) {   
    if (err) console.log(err);

    // create Request object
    var request = new sql.Request();

    // query to the database and get the records
    request.query('select * from Mytab', function (err, recordset) {

        if (err) console.log(err)

        // send records as a response
        res.send(recordset);

    });
});
});
 var server = app.listen(8081, function () {
  var host = server.address().address
  var port = server.address().port
  console.log("Example app listening at http://%s:%s", host, port)
})
这是我的html文件

<html>
<body>
<form action="http://127.0.0.1:8081/process_get" method="GET">
First Name: <input type="text" name="first_name">  <br>
Last Name: <input type="text" name="last_name">
<input type="submit" value="Submit">
</form>
</body>
</html>

名字:
姓氏:

我能够获得控制台中显示的值,这意味着从表单中传递和检索值。但是仍然没有插入到数据库中。

我的javascript不太好,但我猜下面的一行是不正确的:

var res=request.query('insert into Mytab values(req.query.first_name ,req.query.last_name)');
应该是这样的

var res=request.query('insert into Mytab values(' + req.query.first_name + ',' + req.query.last_name +')');

如果没有,您就有了主意。

首先,您没有正确地将值传递给查询,其次,您没有等待记录插入。添加我添加的回调

app.get('/process_get', function (req, res) {
   //some code
   sql.connect(config, function (err) {
      if (err) console.log(err);
      var request = new sql.Request();
      console.log(req.query.first_name);
      request.query('insert into Mytab values('+req.query.first_name+','+req.query.last_name+')', function(err, recordset) {
           if (err) {
              console.log(err);
              return res.send('Error occured');
           }
           return res.send('Successfully inserted');
       });
   });
});
更新

使用事务提交更改

app.get('/process_get', function (req, res) {
   //some code
   var sqlConn = new sql.Connection(config);
   sqlConn.connect().then(function () {
      var transaction = new sql.Transaction(sqlConn);
      transaction.begin().then(function () {
         var request = new sql.Request(transaction);
         request.query('Insert into EmployeeInfo (firstName,secondName) values ('+req.query.first_name+','+req.query.last_name+')').then(function () {
            transaction.commit().then(function (recordSet) {
                console.log(recordSet);
                sqlConn.close();
                return res.send('Inserted successfully');
            }).catch(function (err) {
                console.log("Error in Transaction Commit " + err);
                sqlConn.close();
                return res.send('Error');
            });
        });
    });
});

请原谅,如果有任何输入错误。

您好,我按图所示进行了尝试,表中没有插入数据。。它显示错误res.send不是更新代码中的函数。先前的答案有键入错误。其显示已成功插入浏览器(但未插入)。In终端显示一些连接错误:连接已关闭。但当我给出/alldata时,我得到的结果是..你能分享准确的错误堆栈跟踪吗?另外,在
Mytab
中有多少列
insert-into-Mytab(firstName,lastName)值('parveen','krishna')
piz在这里找到它,这个`“insert-into-dabname(name,city)值('“+name+”,“+city+”)”,“`就是这样