Я занимаюсь разработкой приложения реагирования (приложения чата) с использованием Electron JS (для настольных компьютеров). Я хочу отправлять запросы Http на определенные веб-сайты, получать метаданные URL (opengraph, schema.org, twitterCard и т. Д.). Это не может быть сделано без отключения webSecurity в ElectronJS.
а) это хорошая идея отключить webSecurity в электронном JS? так как пользователи могут отправлять другим почти все что угодно?
б) Мне удалось добиться этого с помощью пакета электронной сети. Я использовал его в реакции (процесс рендеринга), и он работает плавно, нет необходимости отключать webSecurity. однако, если указан неверный URL-адрес, он вызывает исключение в основном процессе (net :: ERR_NAME_NOT_RESOLVED), в результате чего появляется диалоговое окно с сообщением об ошибке. Есть ли способ перехватить это исключение в процессе рендеринга?
ниже показано, как я использовал электронную сетевую упаковку.
const {net} = window.require('electron').remote
function ScrapeMeta(url) {
var promise = new Promise((resolve, reject) => {
const options = {
url: url,
timeout: 2000
};
const request = net.request(options)
request.on('response', (response) => {
var body = '';
response.on('data', function (d) {
body += d;
});
response.on('end', () => {
if (response.statusCode == 200) {
ParseMeta(body)
.then(meta => resolve(meta))
.catch(err => reject(err))
} else {
reject("request failed with " + response.statusCode);
}
})
})
request.end();
})
return promise;
}
Каков наилучший способ достичь этого. спасибо.