La función de JavaScript require () que da ReferenceError: require no está definido

94

Básicamente, estoy usando javascript para extraer datos de la tienda Google Play usando:

1-Solicitud

2-Cheerios

3-QueryString

Usé la API de Google Market de Github, que requiere lo siguiente:

var request   = require('request');
var cheerio   = require('cheerio');
var qs      = require('querystring');

Pero obtengo lo siguiente

ReferenceError: require no está definido ...

Por lo tanto, no tengo requisitos en javascript, que es nuevo para mí o es algo fuera de lo común.

Hunain Usman
fuente
15
Sí, requireno está definido en los navegadores. Mezcló tutoriales de NodeJS con tutoriales de navegador.
elclanrs
1
Proporcione un enlace a la biblioteca que está utilizando.
Quentin

Respuestas:

86

RequireJS es un cargador de archivos y módulos JavaScript. Está optimizado para su uso en el navegador, pero se puede utilizar en otros entornos de JavaScript, como Rhino y Node. El uso de un cargador de scripts modular como RequireJS mejorará la velocidad y la calidad de su código.

IE 6+ .......... compatible ✔
Firefox 2+ ..... compatible ✔
Safari 3.2+ .... compatible ✔
Chrome 3+ ...... compatible ✔
Opera 10+ ...... compatible ✔

http://requirejs.org/docs/download.html

Agregue esto a su proyecto: https://requirejs.org/docs/release/2.3.5/minified/require.js

y eche un vistazo a este http://requirejs.org/docs/api.html

Latheesan
fuente
32

De forma predeterminada, require()no es una función válida en javascript del lado del cliente. Le recomiendo que consulte require.js ya que esto extiende el lado del cliente para brindarle esa función.

neelsg
fuente
12

requireforma parte de la API de definición de módulo asincrónico (AMD) .

Una aplicación del navegador se puede encontrar a través de require.js y soporte nativo se puede encontrar en Node.js .

La documentación de la biblioteca que está utilizando debería decirle lo que necesita para usarla, sospecho que está destinada a ejecutarse en Node.js y no en navegadores.

Quentin
fuente
@blogger: no hay PHP en tu pregunta, es todo JavaScript.
Quentin
perdón por eso, publicado en la pregunta incorrecta, he eliminado que el enlace de origen es: enlace y está basado en javascript, todavía no puedo resolver el problema usando require.js
Hunain Usman
@blogger: ese módulo tiene todas las características de estar diseñado para ejecutarse con Node.JS. Probablemente no funcione en un navegador.
Quentin
después de leer todas las respuestas de esta pregunta, puedo entender ahora,: p gracias por su cooperación y codificación y comencé a investigar en node.js ahora
Hunain Usman
require es parte de Commonjs, no AMD.
shin
4

Sí, require es una función de Node.JS y no funciona en scripts del lado del cliente sin ciertos requisitos. Si recibe este error al escribir código electronJS, intente lo siguiente:

En su declaración BrowserWindow, agregue el siguiente campo webPreferences: es decir, en lugar de simple mainWindow = new BrowserWindow(), escriba

mainWindow = new BrowserWindow({
        webPreferences: {
            nodeIntegration: true
        }
    });
Gaurav Joshi
fuente
2

Para mí, el problema era que no tenía mi modo de compilación de paquete web configurado en producción para el paquete en el que estaba haciendo referencia. Establecerlo explícitamente en "compilar": "webpack --mode producción" solucionó el problema.

usuario1278577
fuente