Das folgende Problem besteht aus Mssql, Nodejs, Gulp, Express und SQL Server Express. Ich kann mich erfolgreich bei SQL Server Express anmelden. Allerdings ist der zurückgegebene Wert undefined, wenn ich das bookRoute.js Code-Snippet ohne Rückruf verwenden. Wenn ich jedoch einen Rückruf verwende, erhalte ich die Daten. Allerdings verstehe ich nicht warum.Nicht definiertes Ergebnis, wenn kein Rückruf verwendet wird. Nodejs, Express und SQL Server Express
app.js Code-Schnipsel:
var config = {
user: 'user',
password: 'password',
server: 'localhost',
database: 'Books',
options: {
instance: 'SQLEXPRESS'
}
};
sql.connect(config, function(err){
console.log(err);
});
bookRoute.js Code-Schnipsel ohne Rückruf:
bookRouter.route('/')
.get(function (req, res) {
console.log('book router');
var request = new sql.Request();
request.query('select * from books').then(
function (err, recordset) {
console.log(recordset);
})
.catch(function(err){ console.log(err)});
});
bookRoute.js Code-Schnipsel mit Rückruf:
bookRouter.route('/')
.get(function (req, res) {
console.log('book router');
var request = new sql.Request();
request.query('select * from books',
function (err, recordset) {
console.log(recordset);
});
});
Sobald ein Benutzer auf die Webseite zugreift, sollte die Konsole die Ergebnisse anzeigen. Leider ist das einzige Ergebnis, das angezeigt wird, undefined, wenn kein Rückruf verwendet wird.
Konsolenausgabe:
P:\ub\lic\library>gulp serve
[11:08:28] Using gulpfile P:\ub\lic\library\gulpfile.js
[11:08:28] Starting 'style'...
[11:08:28] Starting 'inject'...
[11:08:53] Finished 'inject' after 808 ms
[11:08:53] Finished 'style' after 25 s
[11:08:53] Starting 'serve'...
[11:08:53] Finished 'serve' after 5.31 ms
[11:08:53] [nodemon] 1.9.2
[11:08:53] [nodemon] to restart at any time, enter `rs`
[11:08:53] [nodemon] watching: *.js src/**/*.js
[11:08:53] [nodemon] starting `node app.js`
running server on port 3000
null
book router
undefined
[11:09:21] [nodemon] restarting due to changes...
Restarting the server.....beep boop beep beep
[11:09:21] [nodemon] restarting due to changes...
Restarting the server.....beep boop beep beep
[11:09:21] [nodemon] starting `node app.js`
running server on port 3000
null
book router
[ { id: 1,
title: 'A,B,C with Big Bird ',
author: 'Michael Jacob ' },
{ id: 2,
title: 'Peter and his Petunias ',
author: 'Jess Holiday ' },
{ id: 3,
title: 'The Amazing Average Guy ',
author: 'Don Dillon ' } ]
Ich kann bestätigen, dass dies funktioniert. –