Javascript 无法将数据插入sqlserver、nodejs
我刚刚制作了一个简单的程序来显示和插入数据库中的数据(SQLServer2008)。我的代码不显示数据。我无法插入数据。它在终端或浏览器中显示无错误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
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+”)”,“`就是这样