使变量可被其他节点模块访问

时间:2019-05-03 15:45:33

标签: javascript node.js express node-cron

我有一个节点脚本,它也可以兼作快速服务器。目的是运行cron作业,但我希望能够通过向快速路由发出请求来查看上次运行作业的时间。

入口点index.js:

require('@babel/register')({

})
import cron from 'node-cron';
import { test } from 'Tasks';

let task = cron.schedule('* * * * *', () =>{
  task.lastruntime = new Date();
  ....
})

require('./server.js')

server.js

import express from 'express';
import bodyParser from 'body-parser';
import http from 'http';

const app = express();

let routes = require('./routes');
app.use(routes);

http.createServer(app).listen(7777, () => console.log("Listening on port 7777!"));

和routes.js

let router = require('express').Router();
router.get("/test", () => console.log('test'));

module.exports = router;

我想将index.js中的task提供给route.js,以便我可以检查其状态,但是我真的不确定如何处理。如果我将其放在自己的模块中,然后将其导入到索引中以启动任务,然后再次在路由中将其导入以检查其状态,则我将有两个不同的任务实例都将在运行,而这不是我所要做的想完成。

1 个答案:

答案 0 :(得分:1)

exportimport

task.js

export let task = cron.schedule('* * * * *', () =>{
  task.lastruntime = new Date();
  ....
})

route.js和index.js

import { task } from './task.js';