在NodeJS cronjob中未调用猫鼬查询回调

卡普尔

我正在NodeJS中构建一个REST API后端,并在本地对其进行测试。我正在尝试执行cron作业,以从数据库中清除过期的“登录令牌重置代码”,即为重置密码而临时创建的代码。我实质上是在执行Mongoose查询,然后重新保存其中的一些数据。

我使用以下步骤在Mac OSX上创建cron作业:

  • crontab -e
  • i
  • * * * * /usr/local/bin/node PATH_TO_NODE_FILE > PATH_TO_OUTPUT_FILE
  • Esc
  • ZZ

作业列在中crontab -l,它应该每分钟执行一次。

该脚本非常简单:

require('./../helpers/global.js')(); //  Setup Global 
var User = require('./../models/user.js'); // Import User Model

User.clearLoginTokenResetCodes(); // Call function to perform database query and modification

并使用console.log输出到日志文件的,我可以确认cronjob正在运行并且已读取文件。

但是,在用户模型文件的功能块中:

userSchema.statics.clearLoginTokenResetCodes = function() {
  console.log('clearLoginTokenResetCodes()');
  var self = this;
  self.find({'loginTokenResetCode.expiryDate': {$lt: (new Date())}}).exec(function(err, users) {
    console.log('Searched');
  });
};

在日志文件中,我收到'clearLoginTokenResetCodes()'但没有收到'Searched'-特别是,我的Mongoosefind()查询从未完成。我可以通过在普通的节点服务器上调用它来确认它是否有效。

cronjob可能在Mongo完成搜索之前完成。这可能是什么问题,因此又是解决方案?

彼得·里昂

我的猜测是您的代码从未真正连接到数据库。猫鼬将使数据库交互排队,直到建立初始连接为止,但是您忘记了实际连接到数据库。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

未调用nodejs护照回调

来自分类Dev

nodejs +猫鼬-查询聚合

来自分类Dev

Async.series中的Nodejs Angularjs猫鼬查询

来自分类Dev

猫鼬查询中的回调数据

来自分类Dev

findOneAndUpdate,回调必须是一个函数,得到了[object Object],NodeJs,猫鼬错误

来自分类Dev

mongodb查询逻辑猫鼬和nodejs

来自分类Dev

Nodejs、bcrypt、猫鼬

来自分类Dev

回调中的 Nodejs Mysql 回调

来自分类Dev

了解NodeJS中的回调

来自分类Dev

NodeJS + mongoDB查询:承诺/回调

来自分类Dev

NodeJS异步:已经调用了回调?

来自分类Dev

NodeJS异步:已经调用了回调?

来自分类Dev

NodeJS 异步:回调已被调用?

来自分类Dev

响应输出未显示猫鼬模式nodejs中存在的全部信息

来自分类Dev

如何从猫鼬查询回调中访问特定值?

来自分类Dev

猫鼬,nodejs,全文搜索

来自分类Dev

NodeJS回调

来自分类Dev

猫鼬查询在回调后挂起

来自分类Dev

猫鼬和NodeJS中的嵌套数组中的问题

来自分类Dev

mongodb在nodejs中的for循环内回调

来自分类Dev

了解 NodeJS 中的回调函数

来自分类Dev

nodejs 在回调函数中绑定对象

来自分类Dev

回调未在nodejs中获取记录

来自分类Dev

回调函数在 NodeJS 中是如何工作的?

来自分类Dev

在另一个函数中创建猫鼬连接时不调用查询回调

来自分类Dev

猫鼬模块(NodeJS)中的Schema.pre

来自分类Dev

获取猫鼬(nodejs)中的随机过滤值

来自分类Dev

在猫鼬模式nodejs中按ObjectId搜索

来自分类Dev

NodeJS | 猫鼬不更新数据库中的值