Как получить доступ к окну или объекту документа в nodejs / es2017 - PullRequest
0 голосов
/ 18 мая 2019

Я пытаюсь получить доступ к document.getElementbyID и document.location в моем приложении для машинописи. Но получаю ошибку.

(узел: 3024) UnhandledPromiseRejectionWarning: необработанное отклонение обещания (идентификатор отклонения: 1): ReferenceError: документ не определен

Примечание: обратите внимание, что я не хочу использовать jquery, чтобы уменьшить размер пакета.

Любая другая замена jquery в узле также допускается с меньшим размером

1 Ответ

0 голосов
/ 18 мая 2019

На самом деле, код nodejs не запускается в браузере.Его язык сценариев на стороне сервера, поэтому нет окна или объекта документа.Если вы все еще хотите использовать document.getElementbyID.Вы можете использовать "puppeteer".

Puppeteer - это библиотека узлов, которая предоставляет API высокого уровня для управления Chrome или Chromium без протокола через протокол DevTools.Он также может быть настроен на использование полного (без заголовка) Chrome или Chromiu

Пример,

  1. npm install puppeteer
  2. Добавлен код ниже,
const puppeteer = require('puppeteer');

function async xyz() {
   const browserData = await puppeteer.launch();
   page = await browserData.newPage();
   await page.goto('http://example.com/some.html', {waitUntil: 'load'});

const xyzPage = await page.evaluate(() => {
     return document.getElementById("xyzid").innerHTML;
});

console.log(xyzPage);

}

Примечание: доступны другие пакеты npm, которые предоставляют доступ к объекту документа, например, JSDOM и т. Д. Но многие люди используют "puppeteer".

...