He estado tratando de hacer que ewelink-api funcione directamente en un navegador web y no como "script de nodo". He seguido las instrucciones que se indican aquí: https://ewelink-api.vercel.app/docs/demos/serverless Así que hice el siguiente archivo html:
<!DOCTYPE html> <html> <head> <title> Test </title> </head> <body> <div id="demo"><div> <script> document.getElementById("demo").innerHTML = "Hello JavaScript!"; //const ewelink = require('ewelink-api'); /* first request: get access token and api key */ (async () => { const connection = new ewelink({ email: 'myemail@gmail.com', password: 'mypassword', region: 'eu', }); const login = await connection.getCredentials(); const accessToken = login.at; const apiKey = login.user.apikey const region = login.region; })(); /* second request: use access token to request devices */ (async () => { const newConnection = new ewelink({ at: accessToken, region: region }); const devices = await newConnection.getDevices(); console.log(devices); })(); </script> </body> </html>Y esperaba ver algunos dispositivos registrados en la consola, pero en su lugar aparece este error:
Uncaught (in promise) ReferenceError: ewelink is not defined
Intenté agregar esta línea de código al principio:
const ewelink = require('ewelink-api'); pero luego me sale este error:
Uncaught ReferenceError: require is not defined
¿Alguien puede ayudarme? Gracias.
require es para Node.JS (como dice phuzi), import es un estándar de Javascript/ECMAScript (para navegadores).
consulte https://fjolt.com/article/javascript-export-import-node-js
pero 'ewelink-api' y ev. los dependientes también pueden requerir usos,
entonces tuviste que reemplazar todo, tal vez RequireJS ayude
ver también Cliente en Node.js: Error de referencia no capturado: el requisito no está definido
por cierto: las dos llamadas asincrónicas deben (deben) anidarse para ejecutarse en secuencia, aquí se ejecutan simultáneamente, por lo que accessToken ... no estará definido en newConnection