Рендеринг данных регулярных выражений в Jade

#javascript #regex #node.js #pug

#javascript #регулярное выражение #node.js #pug

Вопрос:

Итак, в моем коде ниже я записываю данные, извлеченные из совпадений регулярных выражений, на консоль. Однако мне нужно отобразить эти данные в файл jade, чтобы пользователь, который загружает файл журнала, мог сам просматривать совпадения. Есть идеи или сайты с информацией?

 while ((match = reDiaBtoa.exec(newArray[j])) != null) {

if (match.index === reDiaBtoa.lastIndex) {
reDiaBtoa.lastIndex  ;
}

if (match[2] === "ERROR") {

console.log(match[2]);
console.log("Time "   match[1]);
console.log("Thread Name: "   match[3]);
console.log("Source name amp; line number: "   match[4]);
console.log("Log Message: "   match[5]   'n');
console.log("-----------------------------------------------------------------"   "n");

var logs = [new Log(match[1], match[3], match[4], match[5])]
}    
}
 

ОБНОВЛЕНИЕ: Итак, это то, что я пробовал до сих пор.

Файл Jade:

 ...
  form(method="post", action="/upload", enctype="multipart/form-data")
      input(type="file", name="logName")
      button(type="submit") Upload

   h1.
        Log List
    #logs
        for log in logs
            include log
 

С помощью этого кода в моем index.js файл

 /* GET home page. */
router.get('/', function (req, res) {
    res.render('fileUpload', { title: 'Building a Log File Viewer' }, {logs: logs});
});


function Log(time, thread, source, mess) {
    this.time = time;
    this.thread = thread;
    this.source = source;
    this.mess = mess;
}
 

Но он выдает ошибку, которая регистрируется, не определена. Я полагаю, поскольку он не помещает совпадения в записи журнала.

Комментарии:

1. Поместить его в массив и передать его Jade?

Ответ №1:

 res.render('fileUpload', { title: 'Building a Log File Viewer' }, {logs: logs});
 

должно быть

 res.render('fileUpload', { title: 'Building a Log File Viewer', logs: logs });
 

Я думаю, что это будет logs массив внутри шаблона jade, но я не думаю include log , что он будет обрабатываться log как переменная, он просто попытается включить файл с именем «log.jade». Вероятно, вам потребуется прочитать файлы журналов в вашем коде javascript, чтобы получить необходимые данные в виде строк, а затем передать их в jade для включения в HTML.

Комментарии:

1. Спасибо, он продолжает говорить, что logs не определен. Я использовал включаемый журнал для включения файла с именем log . jade, который выложил log.thread, log.source, log.mess. И я действительно читаю файлы журнала с помощью FileRead, но затем я анализирую данные с помощью регулярного выражения.