不使用回调时的结果不确定。Nodejs,Express和SQL Server Express

菲尔

以下问题由mssql,Nodejs,Gulp,Express和SQL Server Express组成。我能够成功登录到SQL Server Express。但是,当我使用不带callbackbookRoute.js代码片段,返回值是不确定的但是,当我使用回调时,我得到了数据。但是,我不明白为什么。

app.js代码段:

var config = {
    user: 'user',
    password: 'password',
    server: 'localhost',
    database: 'Books',
    options: {
       instance: 'SQLEXPRESS'
    }
};

sql.connect(config, function(err){
    console.log(err);
});

没有回调的bookRoute.js代码段:

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代码段:

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);
        });
});

用户访问网页后,控制台应显示结果。不幸的是,不使用回调时,显示的唯一结果是不确定的。

控制台输出:

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    ' } ]
用户名

没有回调的bookRoute.js代码段:

bookRouter.route('/').get(function (req, res) {
console.log('book router');
var request = new sql.Request();
request.query('select * from books')
    .then(function (recordset) {
        console.log(recordset);
    })
    .catch(function (err) {
        console.log(err);
    });
});

当使用不带回调的bookRoute.js代码片段时,该then函数应仅包含一个参数,该参数是查询的结果,即文档中所述的方式。出现错误时,catch将调用函数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

不使用回调时的结果不确定。Nodejs,Express和SQL Server Express

来自分类Dev

SQL Server Express维护

来自分类Dev

SQL Server Express备份

来自分类Dev

sql server express权限

来自分类Dev

SQL Server Express 复制

来自分类Dev

SQL Server 2014 Express设置

来自分类Dev

SQL Server 2014 Express设置

来自分类Dev

跨网络的 SQL Server Express

来自分类Dev

使用 SQL Server Express 2017 安装 TFS Express 2017 失败

来自分类Dev

在Express Server中使用文件

来自分类Dev

关于SQL Server Express和localdb的困惑

来自分类Dev

Node&Express:使用回调时发送404响应

来自分类Dev

Node&Express:使用回调时发送404响应

来自分类Dev

与SQL Server 2014 Express的部分连接

来自分类Dev

SQL Server 2014 Express无法正常工作

来自分类Dev

SQL Server Express存储过程条件检查

来自分类Dev

SQL Server 2014 Express上的可用空间

来自分类Dev

SQL Server [Express]实例名称映射?

来自分类Dev

SQL Server 2008 Express自动备份方法?

来自分类Dev

与SQL Server 2014 Express的部分连接

来自分类Dev

安装Windows SQL Express Server 2016

来自分类Dev

SQL Server Express 最大值

来自分类Dev

SQL Server 2014 Express 性能调整

来自分类Dev

开发Windows Phone 8,SQL Server Express或SQL Server Compact或SQLite时最好使用什么?

来自分类Dev

SQL Server 2014 Express中缺少SQL Server Management Studio

来自分类Dev

ClickOnce或InstallShield可以设置SQL Server或SQL Server Express吗?

来自分类Dev

尝试安排SQL Server Express中的自动备份时出错

来自分类Dev

节点JS和SQL Server 2008 R2 Express

来自分类Dev

Visual Studio MVC 5和SQL Server Express查询