请教一个关于NodeJs中在多个pool.query回调中的变量赋值问题?

**目的描述: **

我根据查到的总的数据数目和前端请求分页的每页数目,计算出要分的总的页数,以便于做个页码翻页。
出现问题:
代码部分:

 router.get('/list',(req,res)=>{
    var obj = req.query;
    var $page = Math.round(obj.page);
    var $size = Math.round(obj.size);
    var $pageCount = null;
    //临时存储 总页数
    var pageCount = 0;//第一种写法

    console.log(obj);
    if(!$page){
        $page = 1;
    }
    if(!$size){
        $size = 10;
    }
    $page --;
    console.log('前端请求条数'+$size); 
    console.log('初始值'+ pageCount);//this.pageCount
    //console.log('初始值'+ pageCount);//第二种写法
   //获得总的页面数
    var sqlstr2 = 'SELECT * FROM xz_laptop';
    pool.query(sqlstr2,(err,result)=>{
        if(err) throw err;
        if(result.length > 0){
            //总页数
            $pageCount = result.length;
            console.log('总数据数'+$pageCount);
            console.log($pageCount/$size);
            pageCount = Math.ceil($pageCount/$size);
            console.log('总的页数:'+ pageCount);
        }
    });

    //分页查询
    var sqlstr = 'SELECT * FROM xz_laptop LIMIT ? , ?';
    pool.query(sqlstr,[($page*$size),$size],(err, result)=>{
        //console.log()
        if(err) throw err;
        console.log(result);
        if(result.length > 0){
            console.log('返回页数'+ pageCount );
            res.send({data:result,pno:($page+1),pCount:pageCount});
            //res.send(result);
        }else{
            res.send({code:301,msg:'list error'});
        }
    });

采用第一种写法:pageCount只能获取到第一次服务器开启时的数据,此后返回的pageCount均为null,而且返回的数据对象是:
{data:…,
pno:…,//返回的页码
pCount:…,//总的页数,也就是我想要的数
pageCount:….//这是什么鬼,为什么会出现四个属性??
}
可是我原本的数据对象是这样的:
{data:result,pno:($page+1),pCount:pageCount}
为什么会多出来一个属性??这是一点。

采用第二种写法,直接不声明pageCount,后续的pageCount全部使用this.pageCount,就可以得到想要的结果数据,但是我并没有赋初始值,可是初始值哪里会打印一个1是什么鬼。而且为什么这样就能打印出来,因为是隐式的提升为对象的属性了吗??
如果有this指向问题,用变量保存了this,依然不行,结果是undefine,为什么呢?

还有像这种执行多条Sql语句是否能这样写?
望各位大佬指教!

考虑过函数提升、this指向、但是还是想不通,为什么呢??

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
nodejs中的变量解构赋值
所谓的解构赋值,就是把 某个对象中的属性,当作变量,给解放出来,这样,今后就能够当作变量直接使用了 可以使用 : 为解构出来的变量重命名 const person = { name: 'zs', age: 22, gender: '男' } // 变量的解构赋值 let{ name: name123, age, gender } = person name123 = ...
请教一个关于变量赋值的问题
string abc; rn System.Management.ManagementObjectSearcher searcher = new rn System.Management.ManagementObjectSearcher("select * from win32_diskdrive");rn foreach (System.Management.ManagementObject share in searcher.Get())rn rn abc =Convert.ToString(share["Caption"]);rn rn textBox1.Text = abc; rnrn请教高手为什么把abc放在foreach外面总是提示变量未赋值,放在里面就可以啊???
关于PHP中变量赋值
比如:$hack= "1",怎么让$hack等于1-10000的随机数值
一个关于变量赋值的问题
int i;rni = 98;rnrn在多线程中rni = 98;rn这个操作rn会不会被其它线程打断rn而在其线程中出现rni != 98的情况
问一个简单的多个变量赋值问题?
declare @a int,@b char(10),@c tinyintrnselect @a=(select a from users where id=1)rnselect @b=(select b from users where id=1)rnselect @c=(select c from users where id=1)rn我在同一个表中查询数据,要得多个变量值,如上,我要得多少就要写多少,我想问的是有没有一种方法可以只写一条查询语句查询多个值然后赋给多个变量。
关于C#中readonly的变量赋值问题。
一个刚入坑的U3D小白,把学习中遇到的问题分享记录下来,如果您发现有什么不对的地方,希望能及时指出,一起进步。
关于shell脚本中变量赋值的问题
(1)比如说我在Shell脚本中执行一条SQL语句 db2 "select USERID from USER where MOBILE='+8615961217336'",这条语句获取到了一个USERID 我想把他赋值给一个变量,但是不知道怎么实现,请问一下有没有什么办法?
关于SHELL编程中变量赋值的问题
在SHELL编程中,怎样才能把一个命令的输出赋给一个变量?比如date命令的输出。
关于Button事件中赋值变量的问题
我用的是VS2003rnrn页面C.aspx上有一个Label7rnrnprotected void Button3_Click(object sender, EventArgs e)rn rn string s7=3;rn Label7.Text=3;rnrn rnrnrnrnif (!Page.IsPostBack)rn rn rn Button3.Attributes.Add("onclick", "if(confirm('你确定要执行这个操作吗?')) window.location='A.aspx?uid="+Label7.Text+"';else window.location='B.aspx'; return false;");rnrn rnrn我想让Label7的值赋给uid,但是没效果,怎么办?
关于脚本中变量赋值问题
最近做生成二维码,然后在一个脚本中定义一个String变量并赋值,但运行后这个变量是空字符串;rn而后我在start里面赋值,就可以成功赋值,这是什么情况,之前没出现过啊。rn下面是定义时赋值[img=https://img-bbs.csdn.net/upload/201806/12/1528787042_855538.png][/img][img=https://img-bbs.csdn.net/upload/201806/12/1528787054_673721.png][/img]
一个js函数中的变量赋值问题
今早在群里看到一个问题,觉得很有趣,给记录下来 下面这段js代码 var a='test1'; function test(){ console.log(a); var a='test2'; console.log(a); } test(); 输出结果: undefined; test2; 造成上述结果的原因是,var声明的变量会将var声明提前到函数的
C#中一个很简单的变量赋值问题
Program是一个类名rnProgram.temperature是这个类中声明的静态变量rnrnrntemperature是另一个类 AAA 中的变量rnrn我要在这个AAA实例出的对象的方法里实现累加rnrn这个写法就不对,加不了。rnProgram.temperature = temperature + 1rnrn这个就对rnProgram.temperature = ++temperaturernrn————————————————rnrn或者说rn用这一句:rnProgram.temperature = temperature + 1rn就不对rnrnrn而用这二句:rntemperature = temperature + 1rnProgram.temperature = temperaturern就正确。rnrnrn————————————————————--rn这是为什么呀,原因出在哪里? rnrnrnrn这里我烤过来代码源文件的一部分:rnrn[code=C#]rnrnnamespace mydelegaternrn class Programrn rn public static int temperature = 38; rn public static int custemp = 25; rn public static bool isStart = false; rnrn static void Main(string[] args)rn rn AirConditioner airconditioner = new AirConditioner();rn Displayer displayer = new Displayer();rn Alarmer alarmer = new Alarmer();rnrn Uptemper uptemper = new Uptemper();rn rn Timer mytimer = new Timer(2000);rn rnrn uptemper.OverLoadTemperatureEvent += airconditioner.Start;rn uptemper.OverLoadTemperatureEvent += displayer.Display;rn uptemper.OverLoadTemperatureEvent += alarmer.Alarm;rnrn mytimer.Elapsed += new ElapsedEventHandler(uptemper.Uptemp);rnrn mytimer.Start();rn rnrn Console.ReadKey();rn rnrnrn rnrnrn //定义模拟升温类rn public class Uptemperrn rn public int temperature;rn public int custemp;rnrn ......rn ......若干代码rn ......rnrn public void Uptemp(object sender,ElapsedEventArgs e)rn rn custemp = Program.custemp;rn temperature = Program.temperature;rnrn //用这二句做累加,成功!rn //temperature = temperature + 1;rn //Program.temperature = temperature ;rnrn      //用这句做累加,也成功rn //Program.temperature = ++ temperature rnrn //用这句做累加,就失败,Program.temperature里的值一直都加不上去。rn  Program.temperature = temperature + 1; //自然升温rnrn //Console.WriteLine("随机数为0 加后结果1", x, Program.temperature);rn OverLoadTemperatureEvent(temperature, custemp);rnrnrn ......rnrnrn rn[/code]rnrn
Ajax回调数据赋值给变量的问题
Ajax回调数据赋值给变量的问题 写这篇文章是因为我上面Ztree的文章引发的我对js的研究,不明白的可以先看看上面Ztree的返回数据那块,因为是同一个小例子,上篇是所有的代码,上图 我声明全局变量tree,在Success回调函数里把回调的数据赋值给变量,我当时想着根据编程习惯做法也都是这,但是问题出现了,我先简单说下Console.info这个方法是在控制台打印数据,因为alert返回数据...
Python 中变量的赋值问题
Python 中变量的赋值问题最近在看Python,想去实现一个基数排序 偶尔使用了以下代码:alist = [[]] * 10 alist[3].append(23) #预计输出:[[],[],[],[23],[],[],[],[],[],[]] #实际输出:[[23],[23],[23],[23],[23],[23],[23],[23],[23],[23]]然后尝试了以下代码:alist =
Switch 中变量赋值的问题
#include rnrnint main (int argc, char *argv[])rn rn int i = argc;rnrnswitch (i) rn case 0: rn printf("impossible\n"); rn break; rn rn case 1: rn int c1= 5; rn break; rn rn case 2: rn int c2; rn c2 = 5;rn break; rnrn default: rn printf("many\n"); rn break;rn rn rn return 0;rnrnrn为什么case 1 里定义的C1初始化有问题,而case 2 形式的赋值却可以,到底switch 里面是怎么规定的?
关于变量赋值的问题
例如:rn 我在.h的文件里定义了一个变量,int flag1;rn 有一个函数为 INT READ(int flag),rn 现在.cpp中调用一个函数,INT READ(int flag1),是否可以将这个函数返回的结果在赋值给flag1啊?rn 如何把函数返回的结果赋值给一个变量?rn我没有接触过VC,请各位帮帮忙!!rn谢谢rn
关于变量赋值的问题!
Num01=1rnNum02=2rnNum03=3rnrn想实现用for...next来算数合计数rnfor i=1 to 3rnTotal=Total+"Num0"&irnnextrnresponse.write Totalrnrn但"Num0"&i总是过不去,只能把变量值Num01显示出来,就是不能把它当成变量取出其值。rnrn请高手帮忙。
关于变量的赋值问题
rn现在用的一个函数的参数为dword类型,内容是机器的ip地址,如果我用 rnDWORD myadd 定义一个变量,那么该怎么给他赋值啊 rn
关于变量赋值问题
public partial class Admin_addnews : System.Web.UI.Pagern rnrn public string url;rn protected void Page_Load(object sender, EventArgs e)rn rnrn rn protected void Button1_Click(object sender, EventArgs e)rn rn Response.Write("d"+url);rn rn rn protected void Button2_Click(object sender, EventArgs e)rn rnrn url="123"rn rnrnrn如上我想实现的效果是:我点击按钮2 给 URL 赋值 123 点击按钮1 读取 URL的值 rn怎么办到?rn我这么写对吗?
关于赋值变量的问题
今天早晨遇到的问题,不太明白,希望有人可以帮我解答,谢谢先。rn代码如下:rn#include rnusing namespace std;rnint main()rn rn cout << "Enter two Numbers:" << endl;rn int v1,v2;rn cin >> v1 >> v2 ;rn int lower,upper;rn if (v1 <=v2)rn rn lower=v1;rn upper=v2;rn rn elsern rn lower=v2;rn upper=v1;rn rn int sum = 0;rn for (int n1=lower;n1<=upper;++n1) // ->问题在这里 ...................(*)rn rn sum+=n1;rn rn cout << "结果为:" << sum <
关于变量赋值的问题?
请问各位高手:rn在ASP中使用VB脚本,如何将以下字符串赋于一个变量.rn字符串:rn<&票据>rn <&票据头>rn 缴款人=张三rn rn <&收费项目>rn 收费项目=001001 计费数量=1 收费标准=100 金额=300rn 收费项目=001002 计费数量=1 收费标准=200 金额=200rn rnrnrn字符串中的空格要用制表符代替rn等于号后面的字符或数字要用表单变量来替换.rn速用,望各位高手帮忙.rn谢谢!rn
shell脚本中变量的赋值
显式赋值为了避免歧义,显式赋值时禁止在等号两边添加空格。message=hello echo $message读取交互式读取read myvar echo $myvar读取连个变量read aa bb echo $aa echo $bb如果输入的是’aaa bbb ccc’,那么aa=′aaa′,aa='aaa',b=’bbb ccc’带输入提示echo -n "input your name:"
shell中的变量赋值
shell脚本中通常要获取某个值,供脚本使用,这个值来自于其他的地方,今天我们来说一下,如何获取和计算。 ""(双引号)阻止Shell对大多数特殊字符进行解释,但$,`,"仍保持其特殊含义 echo:把其参数传递给标准输出,也就是显示器 echo "your name is $name"      输出name的值,$在双引号中保持其特殊的含义。变量赋值中的=两边不能有空格
回归分析中变量的赋值
回归分析中变量的赋值,讲述关于数学建模中变量赋值的问题
python中的变量赋值
python3中的变量赋值,其实应该说是引用比较合适。如果把一个对象赋值给多个变量,则这些变量都可以引用这个对象,其中一个变量对该对象的操作都可能影响其他变量。 &amp;gt;&amp;gt;&amp;gt; x=[1,2,3] &amp;gt;&amp;gt;&amp;gt; y=x &amp;gt;&amp;gt;&amp;gt; id(x) 1929047579656 &amp;gt;&amp;gt;&amp;gt; id(y) 1929047579656 &amp;gt;&amp;gt;&a
js中变量的赋值
众所周知,js中包含两种数据类型的值:基本数据类型和引用数据类型。 基本数据类型:null,undefined,number,string,boolean 引用数据类型:object 在将一个值赋给变量时,解析器必须确定这个值是基本类型值还是引用类型值。因为基本数据类型是按值访问的,你可以操作保存在变量中实际的值;而引用类型的值是保存在内存中的对象,不能直接操作对象的内存空间,在实际操作对象...
Rust 中的变量和赋值
一、基本赋值语句先看一段代码 fn main() { let x = 5; } 这是个赋值语句。赋值语句由 let 开始。二、变量类型Rust 默认的类型是 32位 有符号整形所以,上面语句等同于 fn main() { let x: i32 = 5; } x后面跟:冒号,冒号后面的 i ( signed integer)表示有符号整形,32表示是32位的整形。除了i32
触发器中变量赋值
在插入触发器中定义了一个变量,想在触发器触发时给该变量赋值,可总是赋不上,为什么啊?rn赋值语句为:rnrnselect @VarH=a.身高 from inserted arnrn用 set @VarH=(select a.身高 from inserted a)也不行
一个变量赋值的问题
语句如下:rn[code=sql]DECLARE @companyid VARCHAR (100)rnSET @companyid='102,103,106,107,108'rnSELECT * FROM oCompany WHERE CompanyID IN (@companyid)[/code]rnrn得不到结果。rn如果where CompanyID IN(102,103,106,107,108) 是可以得到结果的。rn
请教关于多维数组变量类型转换赋值的问题
dim url(100,4) as Stringrndim zxd(100) as Integerrndim z as integer rn..........rn..........rn给url(100,4)赋值rn..........rn For z = 0 To 100rn zxd(z) = CInt(Url(z, 0))rn rn Next zrn程序编译执行时总是说:实施错误13,类型不匹配rn有那位大虾知道怎么样正确的赋值,请告诉我rn
关于变量赋值的问题,请教大家!
[code=SQL]rnCREATE PROC NC_RPTrn@MON VARCHAR(6),@B datetimernASrnSET ANSI_NULLS ONrnSET ANSI_NULLS ON rnDECLARE @QF VARCHAR(8000)rnselect @B=acct_month from acct_month where acct_month1='+CAST(@MON AS VARCHAR)+'rn/*这里acct_month 表中有两个字段,分别是acct_month datetime型 和acct_month1字符型,为的是能够让用户输入rn一个年月比如'200901' 而得到一个datetime型的值赋给@B,其目的是为了能够使用下面语句中的dateadd函数为其做年月的加减*/rnSET @QF='rnIF EXISTS (SELECT * FROM SYSOBJECTS WHERE NAME=''NCRPT2_'+CAST(@MON AS VARCHAR)+''')rnBEGIN rnDROP TABLE NCRPT2_'+CAST(@MON AS VARCHAR)+'rnselect @B=acct_month from acct_month where acct_month1='+CAST(@MON AS VARCHAR)+'rnSELECT REGION_NAME,sum(charge) AS [B2]rnINTO NCRPT2_'+CAST(@MON AS VARCHAR)+' FROM rnacct_item_'+CAST(@MON AS VARCHAR)+'_t where acct_month=CONVERT(VARCHAR(6),DATEADD(MONTH,-1,@B),112) rngroup by region_namernEND rnELSE rnSELECT REGION_NAME,sum(charge) AS [B2]rnINTO NCRPT2_'+CAST(@MON AS VARCHAR)+' FROM rnacct_item_'+CAST(@MON AS VARCHAR)+'_t where acct_month=CONVERT(VARCHAR(6),DATEADD(MONTH,-1,@B),112) rngroup by region_namern'rnEXEC(@QF)rnGOrn[/code]rnrn存储过程可以正常创建,但是在运行该存储过程rnEXEC NC_RPT '200901' rn的时候会出现以下的错误,请问大家有没有办法帮我看看是怎么回事,其实rn服务器: 消息 201,级别 16,状态 4,过程 NC_RPTB,行 0rn过程 'NC_RPTB' 需要参数 '@B',但未提供该参数。rnrnCONVERT(VARCHAR(6),DATEADD(MONTH,-1,@B),112) 这段我的目的就是为了能够在输入 200901 的时候得到200812rn
请教一个动态变量赋值问题
有变量R1_1,R1_2,R1_3rnrs("xx1"))是数据库中的字段,=1或2或3rn这样赋值为什么不对 "R1_"+trim(rs("xx1"))=rs("tj")rn怎样写?rn谢谢rn
还有一个变量赋值的问题需要请教
请问有没有这么给变量b赋值的?rn rn rn rn还有这么一个问题 ascii转字符的问题,为什么前128都能转 后128就不行了?rn
请教一个多线程变量赋值的问题
我在主程序里面定义了三个线程,分别去不同的数据,又定义了三个变量,分别标识这三个线程执行结束。然后定义了一个timer,每100ms检查一次三个变量的值,如果全为true,证明线程的主要逻辑都执行完毕,然后启动两个线程,取一些其他的数据。并且把timer关闭,把三个变量全部设为false。rn问题:timer的逻辑执行完毕后,为什么三个变量还是true。为啥没有设成false。
请教关于DataGirdView中DataGridViewCheckBoxColumn的赋值问题
打个比方:rn通过一句查询,给DataGirdView上填充数据。最后一列是DataGridViewCheckBoxColumn。也就是里面带checkbox的。rn条件满足的让DataGirdView里的checkbox上打上对号,不满足的则是空。rn请问如何可以实现的。望有详细的回答。rnrn这是WINFORM里的DataGirdView控件。
请教 关于PHP中数组赋值的问题
代码如下[code=PHP]Array ( [0] => Array ( [class_id] => 1101 [resource_author] => 1 [resource_status] => 6 ) [1] => Array ( [class_id] => 1103 [resource_type] => [resource_author] => 2 [resource_status] => 5 ) [2] => Array ( [class_id] => 1103 [resource_author] => 2 [resource_status] => 5 ) [3] => Array ( [class_id] => 1103 [resource_author] => 5 [resource_status] => 6 ) [4] => Array ( [class_id] => 1103 [resource_type] => [resource_author] => 5 [resource_status] => 6 ) )[/code]rn现在的要求 是将 resource_author 这一项提出来,组合成新的数组 并且要去掉重复,希望能给出具体代码和每一步的注释,谢谢
nodejs中requier变量的陷阱
在做一个慕课网的一个项目的时候,里面要使用img的时候需要使用requier进行引入,在react中,这个时候我想把路径作为一个变量,就可以在各处使用了。但是最后却失败了,才发现requier的机制问题,不能直接使用变量,必须进行强制转换import React, { Component } from 'react'; import { ImgFigure } from './component/...
NodeJS中使用事件监听器定时器和回调
NodeJS中使用事件监听器定时器和回调一。用时间间隔执行定期工作 setInterval结果二。用超时时间来延迟工作 setTimerout结果 一。用时间间隔执行定期工作 setInterval /** * To schedule the repeated execution of &lt;i&gt;&lt;code&gt;callback&lt;/code&gt;&lt;/i...
nodeJs中的回调(阻塞与非阻塞)
node所有的api都支持回调,异步编程依托于回调来实现。 那回调怎么体现阻塞与非阻塞呢? 举个例子 创建一个简单的文件file.txt 在其中写入“nodeJs回调“ 再次创建一个server.js文件 写入代码如下 //阻塞 var fs = require(&quot;fs&quot;); var data = fs.readFileSync('./input.txt'); console.l...
几行代码搞定nodejs中的回调坑
方法如下 function sync(gen){ var genObj = gen(resume); function resume() { genObj.next(arguments); } genObj.next(); } 文件读取实例 app.get('/fsdemo', function (req, res) { "u
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法

相似问题

2
nodejs环境安装出现这个问题npm报错安装nodejs,出现这个npm 报错,问下大佬怎么搞定
0
nodejs中怎么调用百度云的人脸检测接口
2
nodejs如何监听输入结束
0
nodejs中的c++插件报错:Uncaught Error:The special moudle not be found.
1
后台使用springcloud架构,再用nodejs是不是多此一举
1
nodejs url.parse(query)打印出的数据前面有(object:null prototype),是什么意思,怎么去除
4
用nodejs里面内置的模块读utf-8格式的txt,里面出现一个正方形符号,导致后面的数据读不出来,求问?
1
nodejs开发的vscode插件,如何在使用插件时可以在debug console输出信息
1
iis80端和nginx端口冲突,用的一个VPS,iis80端口不能改的情况,怎么把nginx上面网站的域名后缀端口隐藏。
2
同一个VPS,nginx配置非80端口,怎么隐藏掉nodejs网站后面的端口号,前提是iis80端口不修改!
1
win系统下的VPS, iis已经占用80端口,不能修改。nodejs网站端口还是隐藏不掉。
0
nodejs采集替换内容文字?
1
家政服务小程序的源码求分享
1
vccode 怎么才会有nodejs代码片段提示
0
socket.io,安卓端和PC端正常,IOS无法连接
1
域名跳转到带端口的域名怎么办?
0
Typescript声明文件中怎么做到可以静态调用接口中的函数
1
基于Electron框架的程序发出HTTP/HTTPS连接请求时,如何让其以国密(SM)验证?
1
NPM错误There is likely additional logging output above.怎么解决
1
nodejs抓取图片时的问题