доступ к DOM внутри узла с помощью метода express GET с помощью jsdom

#javascript #node.js #express #dom #jsdom

Вопрос:

я хочу получить доступ к этой кнопке внутри метода express get, но он говорит, что btn не определен, пока я могу использовать его внутри JSDOM.fromFile

 const jsdom = require("jsdom");
const { JSDOM } = jsdom;
JSDOM.fromFile("./index.html").then(dom => {
  let btn = dom.window.document.querySelector('.btn');
}).catch(err => console.log(err));

app.listen(3000);

app.get("/", (req, res) => {
    res.sendFile("./index.html", {root: __dirname})
    console.log(btn)
  });
 

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

1. Вы можете переместиться JSDOM.fromFile внутрь обработчика get. async/await это упростило бы код: app.get("/", async (req, res) => { const dom = await JSDOM.fromFile('./index.html') const btn = dom.window.document.querySelector('.btn') // do something with the btn here res.sendFile("./index.html", {root: __dirname}) console.log(btn) });

2. это работает, но когда я хочу изменить текстовое содержимое кнопки, оно не отображает новое « btn.addEventListener(‘click’, () = > {btn.textContent = «btn»; }) console.log(btn.textContent); }); «