我試圖每 1 小時執行一次 cron。
為此,我在我的index.js檔案中啟動了 cron 作業,如下所示
const cron = require('node-cron');
const readDocuments = require("./cronJobs/readDocuments");
var task = cron.schedule('0 0 */1 * * *', readDocuments);
task.start();
由于要執行的實際代碼已寫入,./cronJobs/readDocuments并且此檔案中的代碼如下,我正在嘗試讀取 csv 檔案。
讀取檔案.js
const ResponseManager = require("../common/ResponseManager");
var fs = require('fs');
const csv = require('csv-parser');
console.log('Read Document....')
try {
var filepath = "../files/abc.csv";
fs.createReadStream(filepath)
.on('error', () => {
// handle error
})
.pipe(csv())
.on('data', (row) => {
console.log('rowrowrow',row)
})
.on('end', () => {
// handle end of CSV
})
} catch (error) {
console.log('errorerror',error)
res.status(500).json(ResponseManager(false, error.message));
}
當我使用 cmd 在 cmd 中運行節點 js 時node index.js,將Read Document....顯示控制臺,但未執行其他代碼。它給了我 throw 'execution must be a function';錯誤
我如何解決這個問題,或者使用 index.js 中的 cron 作業在檔案中執行代碼的實際程序是什么。
請幫忙。謝謝 !!
uj5u.com熱心網友回復:
的第二個引數cron.schedule()必須是函式。您需要將代碼包裝成一個函式并從模塊中匯出。
const ResponseManager = require("../common/ResponseManager");
const fs = require('fs');
const csv = require('csv-parser');
module.exports = function () {
console.log('Read Document....')
try {
const filepath = "../files/abc.csv";
fs.createReadStream(filepath)
.on('error', () => {
// handle error
})
.pipe(csv())
.on('data', (row) => {
console.log('rowrowrow', row)
})
.on('end', () => {
// handle end of CSV
});
} catch (error) {
console.log('errorerror', error)
res.status(500).json(ResponseManager(false, error.message));
}
};
uj5u.com熱心網友回復:
您需要匯出 cron 函式并在您的檔案中使用它
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/383756.html
標籤:javascript 节点.js 功能 要求 节点-cron
