【发布时间】:2023-04-03 09:50:01
【问题描述】:
我创建了一个 nodejs azure web 应用程序,它运行得非常好, 现在我想将我的帖子数据放到 azure MS SQL DB 中,我为此创建了一个代码,但是 sql db 没有用 POST 数据更新,谁能帮我解决这个问题。
var express = require('express');
var bodyParser = require('body-parser');
var sql = require('mssql');
var port = 8080;
var app = express();`enter code here`
var path = require('path');
//CORS Middleware
app.use(function(req,res,next){
res.header("Access-Control-Allow-Origin","*");
res.header("Access-Control-Allow-Methods","GET,HEAD,POST,PUT,OPTIONS");
res.header("Access-Control-Allow-Headers","Origin,X-Requested-With,contentType,Content-Type,Accept,Authorization");
next();
});
app.set('view engine', 'ejs');
app.set('views', path.join(__dirname, 'views'));
app.use(bodyParser());
app.use(bodyParser.urlencoded({extended: false}));
app.use(express.static(path.join(__dirname, 'public')));
//setup database connection
var dbconfig = {
user:"username",
password:"password",
server : "server_name",
database: "db_name"
};
// ConnectionPool
//connect to the database
var executeQuery = function(res,query){
sql.connect(dbconfig,function(err){
if(err){
console.log("there is a database connection error -> "+err);
res.send(err);
}
else{
// create request object
var request = new sql.Request();
// query to the database
request.query(query,function(err,result){
if(err){
console.log("error while querying database -> "+err);
res.send(err);
}
else{
res.send(result);
sql.close();
}
});
}
});
}
app.get('/', function(req, res){
res.render('index', {
title: 'Hello World',
showTitle:true,
people: ['John', 'Steve', 'Jose']
});
});
app.get('/index', function(req, res){
res.render('index');
});
app.get('/contact', function(req, res){
res.render('contact');
});
app.post('/my_user', function(req, res){
//return res.send(req.body);
console.log(req.body.email + ' and ' + req.body.mobile);
var parameters = [
{ name: 'email', sqltype: sql.NVarChar, value: req.body.email},
{ name: 'mobile', sqltype: sql.NInt, value: req.body.mobile},
{ name: 'msg', sqltype: sql.NVarChar, value: req.body.msg},
];
var query = "insert into forMyCV values(@email, @mobile, @msg);";
executeQuery (res, query, parameters);
return res.redirect('/');
});
app.listen(port);
console.log('Server started on port '+port);
谁能帮我解释一下。为什么会这样
【问题讨论】:
-
没有错误?您确定插入代码正在运行吗?你确定你正在查看的数据库和服务器插入的数据库是同一个数据库吗?
-
@CaiusJard,是的,如果我创建代码只是为了执行 CRUD 操作然后我通过“node sql-crud.js”运行它,它不会显示任何错误,它将执行代码并更新sql 表,当用户点击“提交”按钮时,我想更新我的表。在这段代码中,当用户点击提交按钮时,它不会更新数据库表
-
所以问题是提交没有调用数据库查询? (这与 SQL、db 等无关……而且问题的标签有误)
-
@CaiusJard,也许吧。不知道,怎么验证?
-
我以为您已经验证了它,您在上面的评论中基本上是说“如果我直接运行代码它可以工作,但如果我点击提交按钮它不会”
标签: sql node.js azure azure-web-app-service