Fonction Javascript require () donnant ReferenceError: require n'est pas défini

94

Fondamentalement, j'utilise javascript pour récupérer des données de Google Play Store en utilisant:

1-Demande

2-Cheerios

3-QueryString

J'ai utilisé l'API Google Market de Github qui utilise les exigences suivantes:

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

Mais je reçois ce qui suit

ReferenceError: require n'est pas défini ...

Donc, je n'ai pas besoin de javascript qui est soit nouveau pour moi, soit quelque chose qui sort de l'ordinaire.

Hunain Usman
la source
15
Oui, requiren'est pas défini dans les navigateurs. Vous avez mélangé des didacticiels NodeJS avec des didacticiels de navigateur.
elclanrs
1
Veuillez fournir un lien vers la bibliothèque que vous utilisez.
Quentin

Réponses:

86

RequireJS est un fichier JavaScript et un chargeur de module. Il est optimisé pour une utilisation dans le navigateur, mais il peut être utilisé dans d'autres environnements JavaScript, tels que Rhino et Node. L'utilisation d'un chargeur de script modulaire comme RequireJS améliorera la vitesse et la qualité de votre code.

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

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

Ajoutez ceci à votre projet: https://requirejs.org/docs/release/2.3.5/minified/require.js

et jetez un œil à ce http://requirejs.org/docs/api.html

Latheesan
la source
32

Par défaut, ce require()n'est pas une fonction valide dans javascript côté client. Je vous recommande de vous pencher sur require.js car cela étend le côté client pour vous fournir cette fonction.

neelsg
la source
12

requirefait partie de l' API AMD (Asynchronous Module Definition) .

Une mise en œuvre du navigateur peut être trouvé par require.js et le support natif se trouve dans Node.js .

La documentation de la bibliothèque que vous utilisez devrait vous dire ce dont vous avez besoin pour l'utiliser, je soupçonne qu'elle est destinée à fonctionner sous Node.js et non dans les navigateurs.

Quentin
la source
@blogger - Il n'y a pas de PHP dans votre question, c'est tout du JavaScript.
Quentin
bien désolé à ce sujet, posté sur la mauvaise question, ont supprimé que le lien source est: lien et il est basé sur javascript, toujours pas en mesure de résoudre le problème en utilisant require.js
Hunain Usman
@blogger - Ce module a toutes les caractéristiques d'être conçu pour fonctionner avec Node.JS. Cela ne fonctionnera probablement pas du tout dans un navigateur.
Quentin
après avoir lu toutes les réponses à cette question, je peux comprendre maintenant,: merci pour votre coopération et votre codage et j'ai commencé à faire des recherches sur node.js maintenant
Hunain Usman
require fait partie de Commonjs et non d'AMD.
tibia
4

Oui, require est une fonction Node.JS et ne fonctionne pas dans les scripts côté client sans certaines exigences. Si vous obtenez cette erreur lors de l'écriture du code electronJS, essayez ce qui suit:

Dans votre déclaration BrowserWindow, ajoutez le champ webPreferences suivant: c'est-à-dire, au lieu de plain mainWindow = new BrowserWindow(), écrivez

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

Pour moi, le problème était que je n'avais pas défini le mode de construction de mon pack web sur production pour le package auquel je faisais référence. Le paramétrer explicitement sur "build": "webpack --mode production" a résolu le problème.

user1278577
la source