在路由中使用promise同步Mysql返回值,为什么没有路由判断,一启动服务就运行?

新手上路,请多包涵

app.js是主文件,主要是一些路由信息,其中有一个路由如下,主要检查邮箱是否已经使用过,按说只有客户端get/sign-in/email这个路径后再运行里面的代码,为什么app.js一启动,下面的代码就自动运行了?

app.get('/sign-in/email',function(req,res){

    console.log("excute here");
    res.send(db.dbresult);
});

DB模块代码如下:

function dbquery(str,para){
    return new Promise(function(resolve, reject){        
        pool.getConnection(function(err,connection){
            if(err){
                console.log("从数据库链接池取得connection失败!");
            }else{
                console.log("从数据库链接池取得connection成功!");
                connection.query('select * from user where name = ?',['小秘书'],function(err,result){                            
                    if(err){
                        console.log('进行了一次查询,查询失败!');
                        //for debug
                        //where name = ?',{name:'小秘书'}                                
                    }else{
                        console.log('进行了一次查询,查询成功!');
                        //for debug
                        //console.log(result);
                        if(result==''){ resolve('0') }
                        else{ resolve('1') }
                    }
                })
            //用完连接,释放掉,放回连接池
            connection.release();  //后续不应该再有代码;
            }
        })
    })
}


exports.dbresult=dbquery().then(function(data){
    //return data;
    console.log(data);
})
阅读 2.5k
1 个回答

express or koa ?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏