#sails.js
Вопрос:
Я просто не могу понять, почему это не удается там, где это происходит. Этот код находится в модели sails, называемой в Job.js Инициализация() вызывается из bootstrap.js Все это основано на адаптере ORM sails-disk.
Init: async function() {
_jobRunner();
},
_jobRunner: function() {
async function doJobRunner() {
let job = await Job.findOne({state: 'inactive'});
let updated = await Job.Update(job);
}
setInterval(doJobRunner,3000);
},
Update: async function(job) {
let query = {id:job.id}
let updates,updated;
try {
let origJob = await Job.findOne(query); <-- success
updates = {status: 'active'} <-- added for illustration
updated = await Job.updateOne(query).set(updates); <----- this fails into catch (why?)
Job.publish(job.id,updated); // notify
} catch(err) {
sails.log.error(err);
}
return updated;
},
the Error is (err):
Unexpected error from database adapter: Unrecognized datastore: `default`, It doesn't seem to have been registered with this adapter (sails-disk).'
modelIdentity:'job'
**Node version**: v14.17.4
**Sails version** _(sails)_: 1.4.4
**ORM hook version** _(sails-hook-orm)_: 3.0.2
**sails-disk**_: 2.1.0
Комментарии:
1. Я столкнулся с аналогичной проблемой (недетерминированно), даже без вложенной функции, при извлечении данных из обработчика события «Поднятые паруса». Похоже, по какой-то причине на диске sails не всегда регистрируются хранилища данных (пока) в момент подъема Sails, поэтому добавление какой-то задержки может решить эту проблему.