Bonjour,

Je débute sur node.js, je dois faire une petite application.
Une partie de celle-ci consiste à lister des fichiers d'un répertoire en les triant par dernière date de modification.
Seulement je suis bloqué en voulant envoyer mes variables à ma vue "ejs".

Voici le script :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
app.get('/', function (req, res) {
    res.setHeader('Content-Type', 'text/html');
    var filenameArray = [];
    var datefileArray = [];
    fs.readdir('./PDF/', function (err, files) {
        if (err) {
            throw err;
        }
 
        files.forEach(function (file) {
            fs.stat('./PDF/'+file, function (err, stats) {
                if (err) {
                    throw err;
                }
 
                // Fill in the array with filename and last date modification
                filenameArray.push(file);
                datefileArray.push(stats.mtime);
            });
        });
    });
    filenameArray.push("test");
    datefileArray.push("pouet");
    res.render('files.ejs', { filename: filenameArray, dateModification: datefileArray, index: filenameArray.length });
});

et voici la vue :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
<p> <%= filename.length %></p>
<ul><%
    for(var i = 0 ; i <= index; i++) {
    %>
    <li><%= filename[i] + " - " + dateModification[i] %></li>
<% } %></ul>
Le problème concerne la portabilité de mes variables filenameArray et datefileArray, car l'item "pouet" s'affiche.. mais pas les autres du dossier PDF.

Si quelqu'un a une idée. Merci.