Tag: callback

node.js嵌套async.eachSeries

我刚刚进入节点,并结束了新的async.js。 我不确定我想做的事情是可行的(猜测是这样),还是我的做法是正确的(猜测不是)。 这是事情: 这个代码是pipe理一些instagram数据,所以我会根据代码实际需要做的事情来解释一切,以便更容易理解。 连接到mongoDB,得到一些Instagram帐户ID(完成) 为每个ID我想获得拉斯维加斯10个职位(我已经保存在我的数据库中)。 对于每个帐户的10个项目,我需要获得(评论+喜欢)的总和,并将该值与第一个eachSeries调用的out代码相比较。 router.get('/users_all', function(req, res) { User.find().sort({'counts.followed_by': 'descending'}).exec(function(err, users) { async.eachSeries(users, function(item, outerCallback) { Media.find({'userId': item.user_id}).exec(function(err, medias) { var count = 0; async.eachSeries(medias, function(item, outerCallback2) { count += item.comments_count + item.likes_count; }); }); item.totalAmount = count; }); res.json(users); }); } 我只是没有设置callback每个eachSeries,因为我不知道把它们放在哪里,我认为我的代码更容易理解这种方式。 如果需要更多关于代码请求的澄清。 谢谢你的帮助。

callback不是一个function节点js

我是新来的JavaScript,我有麻烦解决这个错误。 我得到的消息:“callback是不是一个函数”在:“callback(angular色arrays)”。 Rol.getAllRoles = function(callback){ sql = "select role from Role;"; var rolesArray = []; var role; mysql.connection(function(err,conn){ if (err){ return callback(err); } conn.query(sql,function(err,rows){ if (err){ return callback(err); } for(var i=0; i < rows.length; i++){ role = rows[i].role; rolesArray.push(rol); } console.log("roles: " + rolesArray); return callback(rolesArray); }); }); } console.log输出:“roles:admin,customer”,以便与数据库的连接工作。

如何减lessNodeJS / Mongoose中的代码重复

我正在使用NodeJS和Mongoose来获得有用户的应用程序。 而且,根据请求,服务器对特定用户执行大量操作。 这意味着,我有这个特殊的代码片段出现在很多function: User.findOne({'email':req.user.email}, function (err, user) { if (err) { console.log('err'); res.send('Error'); } if(!user){ console.log('err'); res.send('Error'); } // do something with returned user user.data = …. … user.save(function(err) { if(err) { console.log('err'); res.send('Error'); } else { console.log('success'); res.send('Success'); } } 正如你所看到的,有很多复制的代码。 改变的代码是“用返回的用户做某事”的部分。 几乎所有其他(错误消息等)保持不变。 那么,我怎样才能把这部分提取出来呢? 既然这是在callback机制上工作,是否有一定的方法来实现呢?

Node.js npm opn – 无法获得callback函数的工作

我想获得一个callback函数来使用opn包(这里是文档: https : //github.com/sindresorhus/opn )。 总之,我想通过浏览器打开一个特定的URL,等待用户closures浏览器,然后运行callback函数。 当我运行我的代码似乎一切正常,但是,它似乎并没有运行callback(我从来没有看到在控制台中'工作')。 这里是我想要做的一些示例代码: var opn = require('opn') opn('http://www.google.com', {app: 'firefox', wait: true}, function(err) { if(err) throw err console.log('worked') }) 它似乎等待(作为一个说明,我在Windows上运行这个模块需要一个应用程序明确指定,以便它等待)。 我想在浏览器closures后通过callback运行代码。 我对节点相当陌生,所以任何见解都非常感谢!

同步function在asynchronousfunction中的影响

让我们想象一个asynchronous函数,它首先加载一个文件,然后用它asynchronous执行。 该函数不能继续没有文件,所以我的假设是,加载此文件可以完成同步(*): const asyncFnWithSyncCode(filePath, next) { // Load file const file = fs.readFileSync(filePath) // Continue to process file with async functions // … next(null, processedFile) } asyncFnWithSyncCode可以针对不同的文件多次调用: async.parallel([ (done) => { asyncFnWithSyncCode('a.json', done) }, (done) => { asyncFnWithSyncCode('b.json', done) }, (done) => { asyncFnWithSyncCode('c.json', done) } ], next) 我的问题是:这如何影响性能? sync函数是否会导致其他readFileSync被延迟? 它会有影响吗? 最好的做法,资源和意见是受欢迎的。 谢谢! (*)我知道我可以简单地使用async readFile […]

停止函数被多次调用

我正在build立一个file upload组件,允许你暂停/恢复file upload。 实现这一目标的标准方法似乎是将文件分解成客户端计算机上的块,然后将块和书籍信息一起发送到服务器,服务器可以将块存储到暂存目录中,然后将它们合并在一起已经收到了所有的块。 所以,这就是我正在做的。 我正在使用节点/快递,我能够得到的文件很好,但我遇到了一个问题,因为我的merge_chunks函数被调用多次。 这是我的调用堆栈: router.post('/api/videos', upload.single('file'), validate_params, rename_uploaded_chunk, check_completion_status, merge_chunks, record_upload_date, videos.update, send_completion_notice ); check_completion_status函数实现如下: /* Recursively check to see if we have every chunk of a file */ var check_completion_status = function (req, res, next) { var current_chunk = 1; var see_if_chunks_exist = function () { fs.exists(get_chunk_file_name(current_chunk, req.file_id), function (exists) { […]

如何使用node.js在AWS RDS PostgreSQL上实现callback

我试图在与AWS RDS Postgresql进行交互的NodeJS EC2服务器上实现callback。 我不太确定它是如何完成的。 AWS-SDK的RDS模块中似乎有一个EventEmitter方法。 它是专为所有的RDS实例types,如MySQL,极光等。不专门为Postgres。 所有我想要做的是在INSERT或DELETE查询后得到某种callback。

nodejs生成器asynchronouscallback – 松散统一云构build

我正在为我们团队的闲暇频道开展定制统一云构build整合工作。 并陷入适当的callback。 它看起来像在asyc任务完成之前返回null,所以需要一些帮助做出适当的asynchronouscallback。 我已经包含脚本和console.log结果。 var request = require('request'); var config = require('../../config.js'); var slackManager = require('../slack/slackmanager.js'); module.exports = { AlertSlack: function (payload) { var getLink = GetLink(payload); console.log(getLink.next()); slackManager.alertSlack(getLink.next().value); } } function* GetLink(payload) { try { var shareEndPointURL = config.unity.apibaseurl + payload.links.api_self.href + "/share"; var shareID = yield HttpRequestHandler(shareEndPointURL, 'GET'); //space to yield more httpRequest […]

以编程方式清除cloudflarecaching

我试图清除cloudflarecaching单个url后,将请求放入node.js api。 我正在使用https://github.com/cloudflare/node-cloudflare库,但是我不知道如何logging从cloudflare的callback。 根据同一个仓库中的testing文件,语法应该是这样的: //client declaration: t.context.cf = new CF({ key: 'deadbeef', email: 'cloudflare@example.com', h2: false }); //invoke clearCache: t.context.cf.deleteCache('1', { files: [ 'https://example.com/purge_url' ] }) 我怎样才能读出这个请求的callback? 我已经在我自己的代码中尝试了以下内容: client.deleteCache(process.env.CLOUDFLARE_ZONE, { "files": [url] }, function (data) { console.log(`Cloudflare cache purged for: ${url}`); console.log(`Callback:${data}`); }) 和: client.deleteCache('1', { files: [ 'https://example.com/purge_url' ] }).then(function(a,b){ console.log('helllllllooooooooo'); }) 无济于事。 🙁

在node.js模块导出中合并多个callback

我有一个sails.js服务,它使用restler(rest-client)来调用外部API并获取数据。 模块看起来像这样: var rest = require('restler'); module.exports = { config: { url: sails.config.remote_api.base_url.concat('/countries'), rejectUnauthorized: sails.config.remote_api.validateSsl, options: { 'Content-Type': 'application/json' } }, find: function(headers, payload, callback) { var request = rest.get(this.config.url, this.config.options); sails.log.info('Outgoing Request', { log_id: headers[x – request – id], method: request.method, host: request.host, url: request.url }); request.on('2XX', function(data, response) { callback(data, response); }); } […]