Tag: callback

node.js承诺:如何找出哪个迭代抛出.catch语句中的exception?

(这不是JavaScript内部循环的重复- 简单实用的例子,因为你不能selectcatch函数采用哪些参数) 我不熟悉Node.js的asynchronouscallback性质 我试图找出for循环中的哪个元素抛出exception。 当前的代码总是返回数组中的最后一个元素,而不pipe哪个元素抛出exception。 for (i = 0; i < output.length; i++) { var entity = Structure.model(entity_type)[1].forge(); /* do some stuff here which I've taken out to simplify */ entity.save() .then(function(entity) { console.log('We have saved the entity'); console.log(entity); returnObj.import_count++; }) .catch(function(error) { console.log('There was an error: ' + error); console.log('value of entity: ', entity); […]

如何在mongoose模型中使用find方法的callback结果

我使用mongoose作为nodejs-mongodb应用程序的ODM。 是我的第一个nodejs应用程序,我来自一个非函数式的编程背景。 看着mongoose的文档 ,你可以find: Kitten.find(function (err, kittens) { if (err) return console.error(err); console.log(kittens); }); 好极了,在这里我们有find函数作为我们模型的一部分(Kitten),它实际上可以find文档,并在callback函数中将其作为“kittens”检索,在这种情况下,它使用console.log()。 但是我想知道如何使用这个函数式编程来将这个值赋给一个variables(因为我在模型文件夹的另一个文件中有这个值,并且导入了需要的模块) 我发现了另外一个关于ObjectId类似请求的问题,但是当您使用callback来使用console.log来打印答案时,它们提供了同样的答案。如果我们诚实地说,这是没有用的。 因为我来自一个非函数式的编程背景,所以我期望的是: var kitten = Kitten.find({name:'Silence'}); 据我所知,如果你在callback中指定了一个新的variables,variables的作用域就在callback函数中,和返回variables一样,甚至在方法不能工作之前声明一个variables。 我确定有什么我错过了。 这个项目是如此之大,我不认为他们不能忘记提供一个方法来做到这一点。 我认为在函数式编程中我有一些东西缺less,或者我不知道。 那么,怎样才能做到这一点呢? 谢谢 ! 编辑:我不知道为什么社区说我的问题是一个可能的重复如何从asynchronous调用返回响应? 这个问题更多地面向js ajaxasynchronous一般,这个问题是面向ODM框架,以及如何处理的结果,它可以通过承诺也是一个不同的东西

无法在Node / Javascript中链接HTTP请求

我正在尝试重新创build一个我在Node / js中编写的Python脚本,而且我无法用asynchronous/callback的方式来包装我的头。 该脚本相当简单,并使用两个基本的HTTP请求到eBay的API。 第一个请求获取结果项目ID的列表,然后第二个请求获取每个项目的具体信息(描述/列表信息等)。 在Python中,这非常简单,我使用了一个简单的循环。 这不是很快,但它的工作。 然而,在JavaScript中,我正在努力获得相同的function。 我现在的代码如下: var ebay = require('ebay-api'); var params ={}; params.keywords = ["pS4"]; var pages = 2; var perPage = 2; ebay.paginateGetRequest({ serviceName: 'FindingService', opType: 'findItemsAdvanced', appId: '', params: params, pages: pages, perPage: perPage, parser: ebay.parseItemsFromResponse }, function allItemsCallback(error,items){ if(error) throw error; console.log('FOUND', items.length, 'items from', pages, 'pages'); for […]

undefined不是一个函数Node.JS

你可以帮我不喜欢的原因,为什么我得到“未定义,如果不是一个function”的错误信息! 这是我的代码: function write(dest, data, cb) { var safe_write = function (cb) { var tmpname = tempFile(dest) fs.writeFile(tmpname, data, function (err) { if (err) return cb(err) renameTmp(tmpname, dest, cb) }) } safe_write(function (err) { if (err && err.code === 'ENOENT') { mkdirp(Path.dirname(dest), function (err) { if (err) return cb(err) safe_write(cb) }) } else { cb(err);// […]

节点callback中令人意外的令牌function

我对节点和callback是非常新的。 我正在处理Nodeschool问题:使用callback函数按顺序返回三个给定URL的数据。 我把这三个URL的结果放在一个对象中,以便跟踪它们。 但是,我一直在testing失败,因为我认为,在我把所有的URL放入它之前,URL对象被返回。 TLDR: 这是违规的function。 它一直告诉我“SyntaxError:意外的标记function”。 但是当我把console.log(urlObj[url])放到它自己的函数中,并在storeUrl通过名称调用它时,我不认为它是在if语句之后运行的。 function storeUrl(url, info, function(url) { // Only log after all the checking is done console.log(urlObj[url]); } ){ // add data to a dict? or something? // to keep track of them??? if(url == url1){ urlObj[url1] = info; } if(url == url2){ urlObj[url2] = info; } if(url == […]

Node.js mongodb与callback的麻烦

所以我试图创build一个注册路线,检查用户是否先存在,我有一个单独的函数中的数据库调用,当它完成时需要返回true或false 。 问题是我不是很熟悉callback和整个asynchronous的东西,我已经search了一切似乎并没有工作不断给我。 TypeError: callback is not a function 这是我的代码任何帮助或方向将不胜感激。 function pullUserFromDatabase(username, callback) { console.log(username); //for debug mongodb.connect(url, function(err, db) { if(err) { console.log("didn't get far" + err) //for debug } var collection = db.collection(username); collection.findOne({username}, function(err, item) { if(err) { console.log("nope it broke" + err) //for debug } else { console.log("it worked" + JSON.stringify(item)) […]

将parameter passing给Javascript / NodeJs中的预定义callback

我试图用bcrypt扩展我的简单的NodeJs后端的login方法。 我的问题是,我现在需要通过散列步骤传递uservariables。 我当前的方法是这样的 – 自然, user在onPasswordHashed范围内是未定义的: signin : function(req, res, next) { step ( function findUser() { User.findOne({ "email": req.body.email }, this); }, function onResultReceived(error, user) { if (error) { … } else { if (user) { bcrypt.compare(req.body.password, user.password, this); } else { … } } }, function onPasswordHashed(error, hash) { if (error) { … […]

由于asynchronousnodejs,无法将数据添加到数组中

api.get('/getfavourites',function(req,res) { var userid = req.param('userid'); array = []; User.findById({_id: userid}, function (err, users) { if (err) { res.send(err); return; } else { var i; var length = users.favouriteid.length; for (i = 0; i < length; i++) { var temp = {eid: users.favouriteid[i].eventid}; Event.findById({_id: temp.eid}, function (err,events) { if (err) { res.send(err); return; } else […]

Node.js:等待来自asynchronous调用的响应

我正在开发一个API,通过它我可以添加一个用户列表作为JIRA观察者(所以我正在和JIRa REST API交谈) 这是这样做的function: for (var i = 0; i < votes.totalValue; i++) { var voter = { user : votes.rawVoteData[i].user, value : votes.rawVoteData[i].value, email : votes.rawVoteData[i].email, fname : votes.rawVoteData[i].fname, lname : votes.rawVoteData[i].fname }; // Add these users as watchers to the Jira jira.jira.addWatcher(issueId, voter.user, function(err, result){ // TODO: Return to callback rep++; console.log('user='+voter.user); console.log(result); […]

如何退出JavaScript中的callback循环

我在test.js文件中有一个简单的codesnippet: [1, 2, 3, 4].forEach(function(e) { console.log(e); }); 每当我在terminal运行node test.js我得到的输出 1 2 3 4 | 但该计划从来没有真正退出。 我需要手动结束它。 看起来很琐碎,但我无法找出一个正确的方式退出docker在terminal。 更新1: var mongoose = require('mongoose'); var User = require('../models/users/user'); var UserProfile = require('../models/users/profile'); var config = require('../config'); var logger = require('../libraries/logger'); logger = logger.createLogger(config); var connectionString = config.database.adapter + '://' + config.database.host + ':' + config.database.port + […]