node中 自制模块获取时间戳不能更新

问题

被require的模块里 过去时间戳, 第二次也获取了和第一次相同的时间戳~~~

代码

前面代码正常, 先只给出出问题的地方, 大佬需要我再贴全部吧

a.js 使用express router

let module = require('./b.js');
router.post('/api',(req,res)=>{
    b.main(()>{
        req.status(200).json({})
    })
})

b.js

function main(){
    if(true){
        let cmodule = require('./c.js');
        cmodule.main()
    }
}
exports.main = main

c.js

var fs = require('fs'),
    timestamp = new Date().getTime(),
    dhh = fs.createWriteStream('./aa'+timestamp+'.txt');
function main(){
    console.log(timestamp)
    if(当满足条件){
        dhh.end("Done"); // 将可写流关闭, 变成为不可写状态
        return;
    }
    stream = fs.createReadStream('./aa.txt');
    stream.pipe(dhh, {end: false});
    stream.on("end", function() {
        main();        
    });
}
exports.main = main

index.html

ajax.post '/api'

控制台

第一次 console.log(timestamp) 1526885307155

第二次 console.log(timestamp) 1526885307155
结果一样,不知原因~求指教
阅读 1.9k
1 个回答

你的c模块一加载就已经执行了,后面都是取得执行后的结果

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题