#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); }); «