web-dev-qa-db-fra.com

Uncaught ReferenceError: le processus n'est pas défini

J'utilise node.js pour créer une application Web. Lorsque j'exécute l'application (soit en ouvrant index.html sur le navigateur ou en utilisant la commande "npm start" sur le terminal) j'obtiens deux erreurs:

Uncaught ReferenceError: le processus n'est pas défini

Uncaught ReferenceError: require n'est pas défini

J'ai résolu l'erreur "require is not defined" en incluant spécifiquement dans ma balise head index.html le lien vers le script this , où la fonction require est définie. Cependant, je ne trouve pas quelque chose de similaire pour la fonction de processus.

Ma question est double:

  1. Pourquoi les modules node.js intégrés doivent-ils être redéfinis? Pourquoi ne sont-ils pas reconnus tels qu'ils sont, c'est-à-dire des "modules intégrés"? Le terme "module intégré" ne signifie-t-il pas qu'un module n'a pas besoin d'être redéfini de manière externe/secondaire?

  2. Existe-t-il un moyen de résoudre ce problème? Mon script est très simple, j'essaie simplement d'utiliser une fonction de base de node.js, donc je ne peux pas comprendre quelles erreurs j'ai pu faire.

Si quelqu'un est venu à propos de ce problème et a trouvé un moyen de le contourner ou une raison pour laquelle cela se produit, vous seriez d'une grande aide.

15
Kantharis

Le code Node.js doit être exécuté par le processus de nœud, pas par le navigateur (le code doit s'exécuter sur le serveur).

Pour exécuter le code, vous devez exécuter la commande:

node server.js

Et puis vous pouvez accéder à votre serveur depuis un navigateur en tapant " http: // localhost: 808 ", par exemple. Vous devez avoir un fichier server.js (ou autre) avec le code de serveur que vous voulez (dans ce cas, créer un serveur web dans le port 8080).

Vous pouvez suivre cet exemple simple en utilisant express comme module serveur http: http://expressjs.com/starter/hello-world.html

6
greuze

J'ai eu le même problème lorsque j'ai essayé de faire cette application js de nœud: https://www.youtube.com/watch?v=mr9Mtm_TRpw

Le besoin en html a été atteint à partir d'un <script> et n'était pas défini, comme

<script> require('./renderer.js');</script>

Je l'ai changé en:

<script src="./renderer.js"></script>

Le processus dans le script html n'était pas non plus défini. J'ai inclus les webPreferences: nodeIntegration dans le fichier js:

win = new BrowserWindow({
    width: 800, 
    height:600, 
    icon: __dirname+'/img/sysinfo.png', 
    webPreferences: {
        nodeIntegration: true
    }
});

J'espère que cela a aidé.

2
Zeghra

J'ai eu le même problème résolu en allant dans mon fichier .eslintrc.js pour configurer mes variables globales, en ajoutant require et process à la variable globals et en définissant la valeur correspondante égale à "inscriptible". J'espère que ça marche pour toi.

ce lien a vraiment aidé https://eslint.org/docs/user-guide/configuring#specifying-globals

1
Oluwatobi Lesi