Что я пытаюсь сделать
У меня есть веб-сервер NodeJS, который обслуживает файлы HTML и JavaScript с использованием Express и Pug . Это выглядит примерно так:
index.pug
html
head
title Hello
body
h1 Hello World!
script(src='script.js')
app.js
const express = require('express');
var app = express();
app.set('view engine', 'pug');
app.get("/", (req, res) => {
res.render("index", {
age: 91,
name: 'George P. Burdell'
});
});
app.listen(8080);
script.js
var person = {
age: #{age},
name: #{name}
};
(взято и добавлено в пример GitHub )
Я хочу иметь возможность менять местозаполнители #{age}
и #{name}
на значения, указанные в функции res.render()
(т.е. {age: 91, name: 'George P. Burdell'}
).
Проблема
На данный момент значения не меняются местами, и консоль выдает ошибку, указывающую, что строки с заполнителями #{age}
и #{name}
не распознаются. Значения местозаполнения меняются только в том случае, если код JavaScript в script.js занесен в файл .pug в виде внутреннего скрипта, например:
index.pug
html
head
title Hello
body
h1 Hello World!
script.
var person = {
age: #{age},
name: #{name}
};
Но то, что я хочу сделать, это поменять значения непосредственно из внешнего файла сценария, такого как в начальной настройке. Мне не повезло найти простой способ сделать это, кроме кода «жить» внутри файла .pug.