Tag: asynchronous

使用asynchronous和等待减less

我知道,其他文章涵盖了这个问题,但我需要使用它作为const所以它只是在运行时初始化 这是我的问题,我是nodejs的新手,并在网上search了很多。 没有find任何解决scheme接近我的需要 const apis = ['log', 'get', 'all'] const loggers = apis.reduce(async (memo, api) => { try { await fs.stat(path.join(process.cwd() + config.application.log.dir, api)); } catch (e) { await fs.mkdir(path.join(process.cwd() + config.application.log.dir, api)); } memo[api] = new (winston.Logger)({ transports: [ new winston.transports.File({ timestamp: () => (new Date().toLocaleTimeString()), datePattern: 'yyyy-MM-dd', level: config.application.mode === 'test' ? 'emerg' […]

用Postgrestestingasynchronous错误

我一直在用Postgres数据库编写Sequelize的unit testing。 为了testing,我正在使用Jest。 现在,我可以得到这个代码工作: test('email field only takes valid emails', () => { expect.assertions(2); let user = Users.build({ email: 'notAProperEmail', password: 'abc123' }); return user.validate().catch(err => { expect(err).toHaveProperty('errors'); expect(err.errors[0].message).toEqual('Validation isEmail on email failed'); }); }) 但由于某种原因,这会抛出错误“SequelizeDatabaseError:关系”用户“不存在”。 此外,预期的方法也永远不会被击中,因为我得到了预期的断言错误:“期望的一个断言被调用,但接收到零断言调用”。 describe('Password is encrypted', () => { beforeAll(() => { Users.create({ email: 'test1@gmail.com', password: 'testPassword123' }) }); test('password is […]

在node.js中使用嵌套for循环内的Promise

我仍然在学习Node.js的阶段,我有一个场景在哪里 我有3个表在MySQL 类别 , 子类别和项目 ,所有行的名称和ID。 现在,我已经有每个文件夹中的文件夹和一些.xlsx文件的列表以及每个.xlsx文件中的一些工作表 其中foldername是类别表中的类别名称 .xlsx文件名是子类别表中的子类别名称,每个.xlsx文件中的表格名称是项目表格中的项目名称 我想要做的是我需要遍历每个文件夹,文件和工作表,并创build一个Id的映射表。 我的代码到目前为止: const fs = require('fs'); const path = require('path'); const xlsx = require('node-xlsx').default; const mysql = require('mysql'); const connection = require('./db-connection.js'); var categoryMapping = () => { //directory of all files var mainDirectory = `${__dirname}/xlsx/final_data`; //reading mainDirectory fs.readdir(mainDirectory, function(err, files) { if (err) { console.error("Could […]

保存方法不工作在mongoose

我在node.js中使用下面的代码: async function create(data) { utils.removeIdFields(data); const user = new User(data); console.log("user will be printed here", user); await user.save(); console.log("code not reaching here"); return user; } 在上面的代码中,User是一个mongoose模型,在user.save()之上的行一直工作正常。 但是,它从不打印下一个日志。 我正在使用mongoose版本4.11.0。

如何通过在量angular器中使用promise来查询mysql数据库

如何通过在量angular器中使用promise来查询mysql数据库? 我想在testing执行过程中多次执行不同的查询,但我的executeSelectQuery函数在testing开始时执行,而不是结束。 我如何用承诺来克服这个问题? 我也需要访问executeSelectQuery中的对象,我不能。 函数返回undefined。 下面的代码是我的executeSelectQuery函数的样子: function executeSelectQuery(sql){ connectDatabase.connection.query(sql, function(err, data) { var result; if (err) { throw new Error('[ FAIL ] – Unsuccessful query execution!!!'); } else{ result = data[0].user; log.info('[ SUCCESS ] – Query executed successfully: ' + sql + ' with the following result ==> ' + result); return result; } }); […]

为什么节点产生了几个线程?

我列出了我的节点服务器的线程,以下是标准输出的响应: $ ps -e -T | grep 14209 14209 14209 ? 00:10:08 node 14209 14415 ? 00:00:00 V8 WorkerThread 14209 14416 ? 00:00:00 V8 WorkerThread 14209 14417 ? 00:00:00 V8 WorkerThread 14209 14418 ? 00:00:00 V8 WorkerThread 14209 14419 ? 00:00:00 node 14209 15894 ? 00:00:00 node 14209 15895 ? 00:00:00 node 14209 15896 ? […]

当通过async.retry失败时重试请求几次

如果第一个请求失败,我想两次重试请求。 我正在尝试通过async.retry 。 这是我所尝试的: let apiMethod = async function(callback) { response = await postRequest(options); return callback(response); } async.retry(2, apiMethod, function(err, results) { if (err) { throw err; } let tempResponse = results; }); 即使不应该有任何错误,我得到的response是undefined 。 有没有人有任何关于如何使用async.retry指针? 提前致谢。

为什么我的variables在函数内部修改后没有改变? – asynchronous代码引用

给出以下示例,为什么在所有情况下outerScopeVar定义outerScopeVar ? var outerScopeVar; var img = document.createElement('img'); img.onload = function() { outerScopeVar = this.width; }; img.src = 'lolcat.png'; alert(outerScopeVar); var outerScopeVar; setTimeout(function() { outerScopeVar = 'Hello Asynchronous World!'; }, 0); alert(outerScopeVar); // Example using some jQuery var outerScopeVar; $.post('loldog', function(response) { outerScopeVar = response; }); alert(outerScopeVar); // Node.js example var outerScopeVar; fs.readFile('./catdog.html', function(err, data) […]

mongoose返回函数查询数据库

编辑 我设法做到了。 我用了很棒的asynchronous模块。 以下是解决scheme: async.each(req.body.users, function(userId, next) { User.count( { _id: userId } ).exec(function(err, count) { if(count === null) { next("Doesn't exist); } else { next(); } }, function(err) { if(err) { console.log(err); } else { console.log("success"); } }); 题 我的情况如下。 我正在向db控制器发出一个post请求,以便在db中创build一个文档。 这个请求显然包含来自表单的数据,存储在req.body中。 我想在将数据推送到数据库之前检查数据是否正确,并通过调用函数来检查数据。 其中一个字段是一个user._id的数组,我想检查是否所有这些属于一个用户。 我实施这个的方式如下: req.body.users.forEach(function(userId) { User.count({ _id: userId }).exec(function(err, count) { if(count […]

如何返回来自asynchronous调用的响应?

我有一个函数foo ,这使得一个Ajax请求。 我怎样才能返回foo的回应? 我尝试从successcallback中返回值,并将响应分配给函数内部的局部variables,并返回该variables,但是没有一个方法实际返回响应。 function foo() { var result; $.ajax({ url: '…', success: function(response) { result = response; // return response; // <- I tried that one as well } }); return result; } var result = foo(); // It always ends up being `undefined`.