Domanda ultima data del file modificato in node.js


Sto cercando di recuperare l'ultima data di modifica di un file sul server usando node.js.

ho provato

file.lastModified;

e

file.lastModifiedDate;

entrambi tornano come non definiti.


44
2017-09-26 18:30


origine


risposte:


Dovresti usare la funzione stat:

Secondo il documentazione :

fs.stat(path, [callback])

Stat asincrono (2). Il callback riceve due argomenti (err, stats) dove stats è un oggetto fs.Stats. Sembra questo:

{ dev: 2049
, ino: 305352
, mode: 16877
, nlink: 12
, uid: 1000
, gid: 1000
, rdev: 0
, size: 4096
, blksize: 4096
, blocks: 8
, atime: '2009-06-29T11:11:55Z'
, mtime: '2009-06-29T11:11:40Z'
, ctime: '2009-06-29T11:11:40Z' 
}

Come puoi vedere, il mtime è l'ultima volta modificata.


82
2017-09-26 18:32



Per nodo v 4.0.0 e versioni successive:

fs.stat("/dir/file.txt", function(err, stats){
    var mtime = new Date(util.inspect(stats.mtime));
    console.log(mtime);
});

o in modo sincrono:

var stats = fs.statSync("/dir/file.txt");
var mtime = new Date(util.inspect(stats.mtime));
console.log(mtime);

18
2018-05-11 11:21



Aggiungo solo quello che ha detto Sandro, se vuoi eseguire il controllo più velocemente possibile senza dover analizzare una data o qualcosa, solo ottenere un timestamp in millisecondi (numero), utilizzare mtimeMs. Esempio sincrono:

js require('fs').stat('package.json', (err, stat)=>{console.log(stat.mtimeMs)})

Sincrono:

js console.log(require('fs').statSync('package.json').mtimeMs)


1
2018-05-20 21:44



Qui puoi ottenere l'ultima modifica del file in secondi.

fs.stat("filename.json", function(err, stats){
    let seconds = (new Date().getTime() - stats.mtime) / 1000;
    console.log(`File modified ${seconds} ago`);
});

Emette qualcosa come "File modificato 300.9 secondi fa"


0
2017-07-04 04:12