STRAPI v4如何将发布后的时间表从v3重构到v4



我试图从STRAPI v3为STRAPI v4 重新创建时间表帖子

但我在更新功能上卡住了,我是不是缺少了一个过滤器、一些新的格式化或params?

config/server.js

schedule = require('./controllers/scedulePosts')
module.exports = ({ env }) => ({
host: env('HOST', '0.0.0.0'),
port: env.int('PORT', 1337),
cron :{
enabled: true,
tasks: {
'*/10 * * * * *': ({ strapi }) => {
schedule.schedulePublishArticles(strapi)
}
}
}
});

/config/controllers/schedulePosts.js

module.exports = {
schedulePublishArticles: async (strapi) => {
try {
let draftArticleToPublish = await strapi.api.article.services.article.find(
{ publicationState: 'preview',
filters: {
publishedAt: null,
publishOn: new Date(new Date().setSeconds(0, 0))
}
}
)
// update publishedAt of articles
await Promise.all(draftArticleToPublish.results.map(article => {
return strapi.api.article.services.article.update(
{id: article.id},
{publishedAt: new Date()}
)
}));
} catch (e) {
console.log(e.message)
}
}
}

当使用{id="int"}调用update((函数时它消除了这个错误:";未定义的属性级运算符id";

更新中是否缺少某些筛选或参数结构?或者这是某种错误I V4

感谢

这是我对v4 的更新

// fetch articles to publish
const draftArticleToPublish = await strapi.entityService.findMany('api::article.article', {
filters: { 
publishedAt: { $null: true },
publish_at: { $lt: new Date() }, 
},
publicationState: 'preview'
});

// update published_at of articles
await Promise.all(draftArticleToPublish.map(article => {
return strapi.entityService.update('api::article.article', article.id , {
data: {
publishedAt: new Date(),
},
});
}));

最新更新