不确定它是 node-cron 中的问题还是 tsc 翻译代码的方式中的问题。
问题是,当您尝试使用 node-cron 导出 ts 文件时,TSC 会转换:
import express = require('express');
import cron from 'node-cron'
const app = express();
cron.schedule('* * * * *', () => {
console.log('Running a task every minute');
});
app.listen(3123);
进入这个:
"use strict";
exports.__esModule = true;
var express = require("express");
var node_cron_1 = require("node-cron");
var app = express();
node_cron_1["default"].schedule('* * * * *', function () {
console.log('Running a task every minute');
});
app.listen(3123);
尝试执行代码时抛出下一个错误:
/home/xxx/cronjobs/index.js:7 node_cron_1["default"].schedule('* * * * *', function () { ^ TypeError: Cannot read property 'schedule' of undefined at Object. (/home /xxx/cronjobs/index.js:7:24)
如果你删除 ["default"],它的工作就完美了。任何想法为什么会发生这种情况?
PD: ts-node 执行它没有问题。