我试图从节点js中的js函数获取返回值,并在我的服务器文件中的post方法中返回值。但出于某种原因,我一直没有定义。我可能做错了什么?我的目标是将记录变量返回到我的server.js文件 这是我到目前为止所尝试的: -
sqlconfig.js
var sql = require('mssql');
var config = {
user: 'realm',
password: 'friend',
server: '123.45.67.89\\SQL2014',
database: 'ArtCaffee'
};
module.exports = {
sqlconnecttodb: function() {
sql.connect(config, function(err) {
if (err) console.log("message is for" + err);
});
},
updateMember: function(Country, BankName, Password, PublicIP, UserID) {
sql.connect(config, function(err) {
if (err) console.log("message is for" + err);
new sql.Request()
.input('Country', sql.VarChar(50), Country)
.input('BankName', sql.VarChar(50), BankName)
.input('Password', sql.VarChar(50), Password)
.input('PublicIP', sql.VarChar(50), PublicIP)
.input('UserID', sql.VarChar(50), UserID)
.execute('p_LoginUser').then(function(result) {
var records = result[0];
return records;
}).catch(function(err) {
console.dir(err);
});
});
}
};
Server.js
var cnn = require('./sqlconfig.js');
var express = require('express');
var app = express();
const bodyParser = require('body-parser');
app.set('view engine', 'ejs');
app.use(express.static('public'));
app.use(bodyParser.urlencoded({
extended: true
}));
app.get('/', function(req, res) {
res.render('pages/index.ejs');
});
app.post('/', function(req, res) {
console.log({
username: req.body.uname
});
console.log({
password: req.body.upass
});
var r = cnn.updateMember("Kenya", "Artcaffe Nairobi", "admin1234", "127.0.0.1", "admin2");
console.log(r); // The value of r is still undefined
});
答案 0 :(得分:0)
修改updateMember
功能:
updateMember: function(Country, BankName, Password, PublicIP, UserID, callback) {
sql.connect(config, function(err) {
if (err) console.log("message is for" + err);
new sql.Request()
.input('Country', sql.VarChar(50), Country)
.input('BankName', sql.VarChar(50), BankName)
.input('Password', sql.VarChar(50), Password)
.input('PublicIP', sql.VarChar(50), PublicIP)
.input('UserID', sql.VarChar(50), UserID)
.execute('p_LoginUser').then(function(result) {
var records = result[0];
// return records;
callback.call(this, null, records); // send back result
}).catch(function(err) {
console.dir(err);
callback.call(this, err); // send back error
});
});
}
然后,在server.js
中,您可以调用此函数:
cnn.updateMember("Kenya", "Artcaffe Nairobi", "admin1234", "127.0.0.1", "admin2", function (err, result) {
// process result here
});