按照正常的逻辑,这些数据需要我每访问一次就从数据中查询一次,如果直接将查询过程变为一次性的(每次启动服务的时候才会重新去sql查询),那么就可以解决问题,但这怎么看,也不像解决了问题,很多数据是需要立即获取的,比如说很多实时更新的信息,这时候你想要通过重启服务才能查看最新信息,很显然是不现实的。 一时间,陷入僵局。。。 因为这个问题,我翻阅了其他人上百篇的博客,发现此类的极少,因为他们做演示的时候大多都是在一个 app.js文件下执行的,根本没有分离的过程,也没有这样的问题。 但功夫不负有心人,通过国外的几篇问题贴,我强忍着翻译后生硬的话语,去看出了其中的玄机。 直接获取不到的结果,可以通过回调函数来返回。 改造。。。。 改造后的代码如下
[NodeJs]拿不到mysql查询返回的数据?你可能还没试过这招
nodejs分离mysql模块后,能在模块内console.log出数据,主模块却拿不到的问题导读
缘由
nodejs的时候,就想要把nodejs和mysql链接起来;于是便在网络上简单学习了nodejs链接mysql的教程,但当时所有代码都挤在一个 app.js 里面,但当我去将mysql的模块专门从app.js中抽离的时候,问题发生了。(今天拿一个简单的小项目来举例)
 ![[NodeJs]拿不到mysql查询返回的数据?你可能还没试过这招m046470372的博客-](https://img-blog.csdnimg.cn/20200612131621488.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzQ2NDcwMzcy,size_16,color_FFFFFF,t_70)
 ![[NodeJs]拿不到mysql查询返回的数据?你可能还没试过这招m046470372的博客-](https://img-blog.csdnimg.cn/20200612131628702.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzQ2NDcwMzcy,size_16,color_FFFFFF,t_70)
 ![[NodeJs]拿不到mysql查询返回的数据?你可能还没试过这招m046470372的博客-](https://img-blog.csdnimg.cn/20200612131714768.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzQ2NDcwMzcy,size_16,color_FFFFFF,t_70)
console.log出数据,但是app.js是接收不到的(通过console.log逐步查找出来的原因),因此我们去访问这个接口,也拿不到任何数据
result还没有被查询到并赋值,函数就已经给我返回了result![[NodeJs]拿不到mysql查询返回的数据?你可能还没试过这招m046470372的博客-](https://img-blog.csdnimg.cn/20200612132126485.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzQ2NDcwMzcy,size_16,color_FFFFFF,t_70)
getdata()函数,然后将返回值发送
 ![[NodeJs]拿不到mysql查询返回的数据?你可能还没试过这招m046470372的博客-](https://img-blog.csdnimg.cn/20200612132248765.png)
result还没有被查询到,log也被略过,直接先执行了return,然后就返回了一个未被定义的空值![[NodeJs]拿不到mysql查询返回的数据?你可能还没试过这招m046470372的博客-](https://img-blog.csdnimg.cn/20200612132447681.png)
 ![[NodeJs]拿不到mysql查询返回的数据?你可能还没试过这招m046470372的博客-](https://img-blog.csdnimg.cn/20200612132506668.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzQ2NDcwMzcy,size_16,color_FFFFFF,t_70)
undefined,而查询结果却在后面;显然,这是执行顺序的锅。
解决方案
![[NodeJs]拿不到mysql查询返回的数据?你可能还没试过这招m046470372的博客-](https://img-blog.csdnimg.cn/20200612132615961.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzQ2NDcwMzcy,size_16,color_FFFFFF,t_70)
 ![[NodeJs]拿不到mysql查询返回的数据?你可能还没试过这招m046470372的博客-](https://img-blog.csdnimg.cn/20200612132629555.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzQ2NDcwMzcy,size_16,color_FFFFFF,t_70)
 6. 在写法上的确和之前有了变动,这次我们再次打开浏览器,数据跃然屏上![[NodeJs]拿不到mysql查询返回的数据?你可能还没试过这招m046470372的博客-](https://img-blog.csdnimg.cn/202006121326410.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzQ2NDcwMzcy,size_16,color_FFFFFF,t_70)
后话
创作不易 欢迎
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算
 官方软件产品操作指南 (170)
官方软件产品操作指南 (170)