Tag: 数组

迭代node.js请求函数

这个问题是关于node.js中的一个爬虫。 给他一个start_url ,他抓取的URL,并“推”到一个。 json文件( output.json )。 目前,他仅使用start_url运行请求函数,并将收集的URL保存在output.json 。 我希望他通过用第一个收集的URLreplacestart_url并重新收集链接来使用保存的URL …等等… var fs = require('fs'); var request = require('request'); var cheerio = require('cheerio'); var start_url = ["http://stackoverflow.com/"] var req = function(url){ request(url, function(error, response, html){ var $ = cheerio.load(html); var data = []; $("a").each(function() { var link = $(this); var exurls = {exurl: new Array(link.attr("href"))} data.push(exurls); […]

JavaScript将一个stringparsing为对象

我正在parsing部分parsingstring值为string的对象。 我认为这样做的一个方法是多次调用substr() ,但如果有什么办法可以更清楚地做到这一点? 例如,当我inputstring USER='Howe', TEXT='foo' 要么 USER='HOWE' TEXT='foo' 要么 USER='HOWE',TEXT='foo' 在函数之后,一个对象会是这样的: {USER:'HOWE, TEXT='foo'};

从数组获取对象值 – NodeJs

我有这个对象的数组 [ { id: '573267d06b2957ab24c54d59' }, { id: '573267d06b2957ab24c54d5a' }, { id: '573267d06b2957ab24c54d5b' }, { id: '573267d06b2957ab24c54d5c' }, { id: '573267d06b2957ab24c54d5d' } ] 我希望将其转换为NodeJs中的以下内容 [ '573267d06b2957ab24c54d59', '573267d06b2957ab24c54d5a', '573267d06b2957ab24c54d5b', '573267d06b2957ab24c54d5c', '573267d06b2957ab24c54d5d' ] 看起来应该很容易给出正确的库/包,但我正在努力find正确的措辞,以将数组“扁平化”为所包含对象的ID。

如果async.forEach()会继续执行,那么会在数组中添加新元素吗?

我的问题是: 如果我导入asynchronous模块,创build一个数组,为该数组写一个async.forEach()循环,并且在循环运行时,我将更多元素放在该数组中循环,它会处理这些新添加的元素吗?

Node / Mongoose – 如果数组在更新期间不存在,则无法在数组中创build对象

所有。 这从昨天起一直困扰我,任何帮助将不胜感激。 我的用户模型有其他模型的数组,如下所示: var userSchema = new Schema({ addresses : [{ type: mongoose.Schema.Types.ObjectId, ref: 'Address' }] 现在,在我的控制器中运行更新函数时,我想更新一个对象,如果它已经存在于数组中,或者创build一个新的,如果它不是。 我是,在地址的实例中,使用模型中的addressType属性来检查地址是否已经存在于数组中。 在我的usersController:创buildfunction: function createAddress(req, res){ User.findOne({ user_id: req.params.id}, function(err, user){ Address.create(req.body, function(err, address){ user.addresses.push(address) }) }) } 这里是更新函数的一个片段: function updateUser (req, res) { console.log("updating user in back end") User.findOneAndUpdate({user_id: req.params.id}, req.body, function(err, user){ if(err) throw err Address.findOne({address_id: req.params.id}, […]

JavaScript Stringformat与数组

我正在使用stringformat库来格式化node.js中的string。 var stringFormat = require('stringformat'); stringFormat.extendString(); 我试图传递一个参数数组,而不是内联,如下所示: var formatted = '{0}{1}'.format(params); 代替 : var formatted = '{0}{1}'.format(params[0], params[1]); 但图书馆不支持这一点。 我已经按照这个问题: nodejs-util-format-passing-an-array试试这个: params.unshift('{0}{1}'); String.prototype.format.apply(String.prototype, params); 并且: var i = -1; '{0}{1}…'.format(function() { i++; return params[0]; }); 而且没有一个按预期工作。 有任何想法吗?

Dynamoose / DynamoDB更新将空数组保存为空

我正在使用Node.js包Dynamoose处理我的Web应用程序中的DynamoDB请求。 问题是当我尝试更新该项目,每当JSON对象包含一个空的数组Dynamoose似乎将其设置为null。 或者对于我所知道的,它可以是DynamoDB。 下面是我用于这个表的模式的一部分。 var NoteSchema = new dynamoose.Schema({ _id: String, details: Array }); 在下面的代码中,variablesbody被设置为{details: []} 。 我已经通过运行console.log(body);确认了这一点console.log(body); 。 Note.update({ _id: searchid }, body, function(err, note) { if (err) { console.log(err); } else { console.log(note); } }); 问题是在运行console.log(note);callback函数里面console.log(note); details甚至不显示。 所以它是空的或未定义的。 在amazon web services中,对于该条目再次不存在details 。 有什么奇怪的是,当创build一个新的注意,设置details = [] ,并保存,细节是一个空的数组,完美的作品。 所以对我来说,更新logging并将该属性设置为空数组似乎就像一个特定的问题,因为创build一个logging并将该属性设置为一个空数组是完美的。 如何更新logging并将详细信息设置为空数组?

使用array.push产生未定义的

我创build了一个轮询应用程序,logging用户的IP地址,以及他们投票的时间以及投票的时间。 为了做到这一点,我设想为每个“投票”创build一个对象,将每个对象包含在一个属性中,然后将该对象推入一个数组中,以适合我的需求。 一切都运行良好,直到我试图使用推我的对象到我的数组。 我目前说,我的数组是未定义的。 究竟发生了什么? 我尝试使用索引和设置votingArray [我]的对象,但也给了一个未定义的错误。 这是我的代码: //Vote for the pet passed into by user function vote(pet, time){ linkService.incrementCount(pet); trackVote(pet, time); res.render('vote', { pet: pet }); } var votingArray = []; function trackVote(pet, time) { var voteObject = { time: time, pet: pet, ip: req.ip }; console.log(voteObject); votingArray.push(voteObject); console.log(votingArray); } function showResults(){ res.render('results', { […]

如何用Mongoose删除JSON对象中的数组元素?

我已经检查了下面的stackoverflow问题: Mongoose删除文件中的数组元素并保存 如何删除MongoDB中的数组元素? 这是我试过的: var User = require('../model/user_model.js'); router.put('/favoritemovies/:id', function(req, res){ console.log(req.params.id); console.log(req.body.email);//I am able to console.log both value User.update( {_id: req.body.email}, { $pullAll: { favoriteMovies: {id:req.params.id} } } }, }); 我的用户模式: var mongoose = require('mongoose'); var Schema = mongoose.Schema; var ObjectId = Schema.ObjectId; var userSchema = new Schema ({ id: ObjectId, name: String, password: […]

对象“名称”未定义,不pipe我如何select它

我不能为我的生活select正确的? 我可能会有for循环错误,所以请咨询,如果是这样的话: function(data, callback){ data.champNames = {}; for(var c in data.champId){ val = data.champId[c]; var surl = 'https://global.api.pvp.net/api/lol/static-data/euw/v1.2/champion/'+ [val] + '?api_key=' + api_key; request(surl, function(err, response, body){ if(!err && response.statusCode == 200){ var json = JSON.parse(body); //data.champNames.push(json[val].name); console.log(json); } else { console.log('Error in Champ Name'); } }) console.log(val); } console.log(data); } data.champNames.push(json [val] .name)将不起作用,JSON在控制台中以如下方式返回: { […]