Tag: asynchronous

有超时的node.jsasynchronous请求?

在node.js中,是否有可能使asynchronous调用超时(如果时间太长(或不完成))并触发默认callback? 细节: 我有一个node.js服务器接收请求,然后在响应之前在后台asynchronous地发出多个请求。 这个基本问题已经被一个现有的问题所覆盖,但是其中一些被认为是“很好的”。 我的意思是,如果我们得到回应,那么它会加强对客户的回应,但是如果回复太久,最好及时回应客户,而不是回应。 同时,这种方法可以防止简单地没有完成或失败的服务,同时允许主要操作线程作出响应。 您可以像使用具有一组核心search结果的Googlesearch一样来思考,但会根据其他幕后查询提供额外的响应。

通过ajax和url更新页面而不重新加载页面(node.js)

什么是正确的方式来进行清单更新,而无需刷新页面,并通过button事件和URL访问。 所以,当url参数ID是基于路线,它会更新到特定的页面。 就像购物网站上的产品页面一样。 下面的工作通过ajax请求,但不通过url(库存/ 2)它只需要我的发布的数据,而不是渲染的视图。 我需要它能够通过url去特定的页面,所以我可以链接到它。 当javascript未启用时,还需要能够回退到标准页面加载。 查看(库存) extends layout block content div.row div.col-md-offset-2.col-md-8#inventory a(class='btn', href='#') Get More! script. $(function(){ $("a.btn").on("click", function(e) { e.preventDefault(); $.get( '/inventory/2', function(data) { $('#inventory').html(data); }); }); }); 路线 router.get('/inventory/:id?', function (req, res) { if(req.params.id){ var id = req.params.id; var data = "Updated and now on page " + id res.send(data); […]

如何用object params请求保存多个数据,一次在sails js中

目前,我正在为一个移动应用程序开发一个带有js + mongoDB的sails API。 我想保存从移动应用程序发送的多个数据,我通过控制器函数中的req参数(作为对象)捕获它。 我的控制器代码的一些部分如下所示: var contactData = req.allParams().Contact; looping.. { Contact.create(contactData[index]).exec(function addContact(err,createdContact){ }); } 你能告诉我如何实现循环以保存多个联系人数据到数据库? 问候,argi danu。

拒绝/解决asynchronous/等待error handling

我对NodeJS相当陌生,刚刚开始使用Async / Await实用程序来处理控制stream。 现在为模块q,我们有以下处理错误情况优雅: async_function().then( resolve_function(resolved_data){ }, reject_function(rejected_data){ } ) 其中resolve_function从defer.resolve获取已parsing的值,reject_function从defer.reject获取值。 是否有相同的实用程序可用于Async / Await,我们可以显式地解决或拒绝某些基于业务逻辑的值,而不是回落尝试/捕获不处理逻辑错误。

同步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 […]

asynchronous系列nodejs中的asynchronousforeach

我正在处理节点asynchronous库 。 我无法按照我想要的顺序执行。 我不知道我要去哪里错了这里是代码..在评论中我已经定义了订单号..目前它的执行2,3,4,5,1顺序我想在1,2,3,4 ,5号 ….好心帮忙 function getAsExhibitors(req, res) { //getting all exhibitors against an event var exhibitors = []; var eac_app_names = []; async.series([function(callback){ models.EacExhibitorsExt.find({ deleted: false,userid: req.user._id}).sort({ modified: -1 }).exec(function(err, myExhibitors) { exhibitors = myExhibitors; callback(); }); },function(callback){ async.forEach(exhibitors,function(exhibitor,callback){ models.Eac.findById(exhibitor.eventid).exec(function(err,eac){ eac_app_names[exhibitors.indexOf(exhibitor)]=eac; console.log("—————–1————–"+eac_app_names); }); console.log("—————–2————–"+eac_app_names); callback(); },function(err) { console.log("—————–3————–"+eac_app_names); callback(); }); }],function(err) { //This […]

停止函数被多次调用

我正在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) { […]

无法find一个简单的方法出了多个asynchronous的每个节点js(帆)

所以这是交易: 我有一个对象的数组与对象的子数组 askedAdvices askedAdvice.replayAdvices 我正在循环通过父母和foreach循环通过孩子和需要填充()两个obejcts(我使用的是帆) 孩子看起来像: askedAdvices = { replayAdvices : [{ bookEnd : "<ID>", user : "<ID>" }] } 所以我的目标是用两个findOne查询来循环和填充bookEnd和user,但是我正在为callback地狱而生气。 这里是Models代码: 询问build议模型 module.exports = { schema : false, attributes: { bookStart : { model : 'book' }, replayAdvices : { collection: 'replybookend' }, user : { model : 'user', required : true }, text […]

如何在Node.js中从AWS getObject调用中返回variables

我正在研究一个Node.js项目,它依赖于AWS​​的getObject响应。 目前,我可以访问我需要的数据并将其存储在variables( header )中,但不知道如何使其在主函数中可用。 TileStreamerS3.prototype.Init = function(filepath, index, s3config){ var retval = false; AWS.config.update({accessKeyId: s3config.access_key, secretAccessKey: s3config.secret_key}); var blc = new BlockLibraryConfigs(); var awsConfig = blc.awsConfig; AWS.config.update({region: awsConfig.region}); var aws = new AWS.S3(); var params = { Bucket: s3config.bucket, Key: s3config.tile_directory + filepath, Range: 'bytes=0-27' }; aws.getObject(params, function(err, data){ if(err == null){ var header = […]

在Nodejs中堆叠asynchronouscallback事件的最佳方法

我正在使用Node和NodeWebkit编写本地音乐stream应用程序。 在我的应用程序中,我扫描任何目录的音乐文件夹,加载专辑封面,然后在HTML中显示艺术。 但是,在每个asynchronouscallback结束时检测.forEach()迭代器结束的逻辑不会从开发人员的angular度来创build干净的代码。 从逻辑上讲,它的工作原理,但如果我要解开这串依赖关系,我不得不重写所有的依赖关系。 这是我的代码片段: // Fetch the music albums fs.readdir("./music", function(err, files) { if (err) { //return console.error(err); } //document.write(JSON.stringify(files)); // Look specifically for music album folders (directories) filterDirectories("./music", files, function(dirs){ dirs.forEach(function(dir, index, array){ fs.readFile('./music/' + dir + "/album.json", 'utf-8', function (err, data) { data = JSON.parse(data); if (err) { return console.error(err); } // […]