我有一张表 -available_trucks
我想在其中更新列 - available_date
。我计划每天午夜更新这个可用日期,但现在出于测试目的,我尝试使用 nodejs 中的这个库每隔一分钟更新一次
https://www.npmjs.com/package/node-schedule
我也使用 knex js 作为 sql builder。
我的代码
服务器 JS(主文件)
const truckJob = require('./jobs/trucks-job');
schedule.scheduleJob('*/1 * * * *', (fireDate) => {
console.log('This job was supposed to run at ' + fireDate + ', but actually ran at ' + new Date());
truckJob.updateAvailableTrucks();
})
卡车工作
const db = require('../db/knex');
function updateAvailableTrucks() {
db("available_trucks").update('available_date', '2020-12-13T04:47:56.126').where('truck_number',
'228');
}
因此,出于测试目的,我在这里输入硬编码的日期值,其中truck_number
是 228。我想提一下,我检查过并且我的available_trucks
- 表中的数据存在,所以在这里我尝试更新表中的现有列。但是在再次执行脚本一分钟后,表中的列没有更新。此外,当我尝试从某个表中获取数据时,一切都运行良好。例如
function getAll() {
return db.select('*').from('available_trucks');
}
我的 knex 配置 KNEX JS
const config = require('../knexfile.js');
const pg = require('pg');
const PG_DECIMAL_OID = 1700;
// workaround that ensures numeric types are read as numbers, not strings
pg.types.setTypeParser(PG_DECIMAL_OID, parseFloat);
module.exports = require('knex')(config);
KNEX 文件 JS
const config = {
client: 'pg',
connection: {
host: process.env.POSTGRES_HOST || 'localhost',
database: process.env.POSTGRES_DB || 'some_db_name',
user: process.env.POSTGRES_USER || 'postgres',
password: process.env.POSTGRES_PASSWORD || 'xx
},
pool: { min: 0, max: 10 },
migrations: { directory: './db/migrations' }
};
module.exports = config;