Articles of for loop

循环通过条形码canvas创build缓冲区并写入文件

为了解决这个问题,我正在用一些基本的代码来解决这个问题。 这只是testing一个更大的项目的一些function,我试图find一种方法来接受一个数组填充canvas对象的函数。 然后我也需要循环这些canvas对象,并创build一个缓冲区来写入一个文件。 由于某种原因,当我运行这个如何,我认为我应该asynchronous,它只能保存最后的条码多次。 对我来说,我的saveBarcode()函数似乎是一个错误,其中toBuffer和writeFile函数运行asynchronous,但是它们在toBuffer和writeFile函数中失去了循环im的迭代值。 我似乎找不到一个更好的方式来保存所有这些条形码canvas'文件。 任何input将不胜感激! 如果你需要更多的细节,我会尽我所能回答一切。 这是整个代码: const JsBarcode = require("jsbarcode"); const Canvas = require("canvas"); const fs = require("fs"); //makeid creates a Random 12 Digit # to represent the barcode number, It returns an Array of barcodes based on the amount inputted let makeid = (amount) => { let barcodeArray = []; let […]

循环节点无意中改变了对象

我有一个angular度的应用程序,谈到一个node.js套接字服务器,谈话node.js应用服务器。 在这个套接字服务器函数中,我想根据哪个用户来清理应用服务器的响应。 我把一个拷贝放到了被擦净的物体的手上,然后把这个拷贝发送给客户端。 它看起来像副本影响的原始对象,因为循环停止后,第一个和其他客户端没有得到消息。 第一个控制台输出显示第二个客户端已连接,并在数据操作之前显示在clientsSockets列表中。 所以我应该只看到“用户没有连接”4次。 第二个控制台输出显示原始对象hand.players在从未调用时正在更改。 这是我的问题。 为什么hand.players只有当emitHand.players在代码中改变时才会改变? 我也尝试了一个forEach(注释掉)无济于事。 socket.on('hand', function(receivedHand) { console.log('clientSockets[56fde5327ee729ac1a37fd1c].userId '+ util.inspect( clientSockets['56fde5327ee729ac1a37fd1c'].userId, false, null)); var hand = null; PostHand(receivedHand).then(function(data) { hand = JSON.parse(data); console.log('hand.players'+util.inspect(hand.players, false,null)); var emitHand=hand; // emitHand.players.forEach(function(player, index, handPlayers) { for(var index in emitHand.players){var player=emitHand.players[index]; if (clientSockets[player.userId]!=null){ ScrubHand(emitHand.players,index).then(function(data) { emitHand.players=data.emitHandPlayers; clientSockets[data.emitHandPlayers[data.index].userId].socket.emit('hand', emitHand); console.log('hand.players'+util.inspect(hand.players, false,null)); }); }else{ console.log('user not […]

需要说明:在JavaScript中用于…和for(;;)时会有不同的输出

在NodeJS中,我创build了以下两个脚本,它们都是为了从数组中删除偶数。 这是我的第一个脚本: #!/usr/bin/nodejs var myarr = [2,3,5,1,6,2,28,5,7,90,3]; console.log(myarr); for(var i in myarr){ if(myarr[i] % 2 == 0){ myarr.splice(i,1); –i; } } console.log(myarr); 第一个脚本的输出如下: [ 2, 3, 5, 1, 6, 2, 28, 5, 7, 90, 3 ] [ 3, 5, 1, 2, 5, 7, 3 ] 在第二个脚本中,我将for(;;) in循环更改for(;;)循环,如下所示: #!/usr/bin/nodejs var myarr = [2,3,5,1,6,2,28,5,7,90,3]; console.log(myarr); for(var i=0;i<myarr.length;i++){ […]

循环访问数组并执行MongoDB查询(NodeJS)

我有一个对象名称configuration文件,其中包含一个像这样的collections夹arrays… {favorites: [ { name: 'Love Song', id: 'Itja90E2tIE'}, { name: 'I Need Your Love', id: 'AtKZKl7Bgu0'} ]} 我想循环访问数组,获取每个collections夹的id,然后在我的mongo数据库的歌曲集合中为该ID执行.find(),获取歌曲的艺术家,并将其添加到数组中。 我试过类似… for(var i=0; i<profile.favorites.length; i++) { db.songs.find({"_id" : profile.favorites[i].id}, {"artistName" : 1}, function (e, result){ profile.favorites[i]["artistName"] = result[0].artistName; }); } 但这似乎并不奏效,(主要是因为Mongo / MongoJs是asynchronous的)。 什么是正确的方式来做这样的事情?

如何在Jade中反向循环迭代?

ul.blogpostGrid for child in page.get('/posts').children a(href=child.url): li.col.span_1_of_4 h2 #{child.title} div.imgThumb(style='background-image: url(#{child.url}thumb.jpg);') p #{child.excerpt} For循环目前按照创build的升序显示博客post。 我怎样才能扭转显示他们的顺序? 是否有反向function? 如果是的话,在这方面如何实施呢? 我正在使用木材cms。 https://github.com/studiomoniker/woods

用Node.js和Tedious插入多条logging

我有一个客户对象数组,我想插入到SQL数据库。 客户对象从请求数据中检索。 我正在使用Tedious进行请求,并且Tedious Connectionpool为了同时有多个连接。 当循环播放对象时,我尝试插入时出现错误,错误是 { [RequestError: Violation of PRIMARY KEY constraint `'PK__Customer__A4AE64D873A5400C'. Cannot insert duplicate key in object 'dbo.Customer'. The duplicate key value is (2).]` 请注意,此时我只有3个对象正在发送请求。 它看起来只是最后一个被处理和插入的对象。 但是因为我对Node.js使用单调乏味,我不能发现我的错误。 有什么build议么 ? router.post('/',jsonParser, function(req, res) { var customers = req.body.customers; var companies = req.body.companies; var Connection = require('tedious').Connection; var Request = require('tedious').Request; var TYPES = require('tedious').TYPES; […]

使用push()和for循环的Javascript JSONArray问题

我已经做了一个简单的程序,使用两个for循环在本地存储一个数组,但发生了一些奇怪的事情… 有我的代码: var imagesdata = data[0]; var preferences = data[1]; for (var i = preferences.length – 1; i >= 0; i–) { (function(i){ for (var z = imagesdata.length – 1; z >= 0; z–) { (function(i){ if(imagesdata[z].cathegory == preferences[i].cathegory){ var array = $('body').data('data'+preferences[i].cathegory); if(array == null){ alert('asefsef'); $('body').data('data'+preferences[i].cathegory, [{'pname' : imagesdata[z].pname , 'pimage' : imagesdata[z].pimage}]); […]

在Node.JS中同步“GET”

我试图循环通过一个HTML块的图像,并获得每个图像的原生宽度。 我有完美的DOM构build,我在NPM上使用图像大小模块来检索图像宽度。 问题是需要花费时间来获取图像并获取宽度,所以在获取宽度之前,代码会继续处理。 因此,我无法调整HTML块中的宽度,因为函数在获取第一个图像之前运行并完成。 无论如何,停止代码处理,直到这个GET请求完成? 我不希望For循环继续,直到图像完成。 var elem_tags = doc.getElementsByTagName("img"); var elem_tags_length = elem_tags.length; for (var i=0; i < elem_tags_length; i++) { var imgUrl = options.elem_tags[i].getAttribute('src'); http.get(imgUrl, function (response) { // My Code To Manipulate <img> tags var chunks = []; response.on('data', function (chunk) { chunks.push(chunk); }).on('end', function() { var buffer = Buffer.concat(chunks); console.log(imgSize(buffer).width); // […]

来自for循环的variables总是返回0

我对node.js / sails.js比较陌生,遇到了一个问题,我知道答案很简单,但我似乎无法解决这个问题。 我的代码如下 SendCompleted : function(req,res) { var updated = 0; var params = req.params.all(); var dt = JSON.parse(decodeURI(params.id)); var connection = new sql.Connection(testrmis, function (err) { if (err) { } for(var i = 0; i < dt.length; i++) { var obj = dt[i]; var request = new sql.Request(connection); request.stream = true; request.input('branchid', sql.Int(), […]

(单个SQL查询)vs(单个SQL查询和循环数据)哪一个更好?

我有一个要求从SQL数据库中获取用户给出的项目列表的数据。 例如,如果用户上传包含1000个item ID的.csv文件,那么通过item_id创build1000个SQL查询将是更好的select? 或者在一个单一的SQL查询中获取整个数据库表数据,并循环这些数据将是一个更好的select?