2017-08-17 2 views
1

projet Mon Node.js a une structure de répertoire comme ceci:Comment utiliser require() dans un sous-dossier de projet Node.js

  • server.js
  • package.json
  • ...
  • publique
    • app.js
    • index.html

Un appel à require() fonctionne très bien dans server.js, mais lorsque je tente d'exiger un paquet dans app.js, un ReferenceError est jeté:

require is not defined at app.js:1 

Comment puis-je besoin d'un module de nœud d'un fichier qui est pas dans la portée globale de mon projet?

+0

require ('../../ server.js'); – Mozzie

+0

lorsque je l'inclue dans app.js, la même erreur est renvoyée. –

Répondre

4

Utilisez quelque chose comme ça var db = require('../model/db');

Cela signifie essentiellement ../ déplacer d'un cran à partir du répertoire courant, puis dans le modèle, puis db.

Vous devez utiliser ceci pour remonter la structure du répertoire, puis l'utiliser dans require.

Node.js est un côté serveur Javascript environnement d'exécution qui combine le moteur Javascript V8 avec un tas de côté serveur bibliothèques. require() est une de ces fonctionnalités que node.js ajoute à l'environnement . Ainsi, lorsque vous exécutez un noeud dans le terminal, vous exécutez un environnement contenant require(). Require() n'est pas une fonctionnalité intégrée dans le navigateur. C'est une caractéristique spécifique de node.js, pas d'un navigateur. Ainsi, lorsque vous essayez de que le navigateur exécute votre script, il n'a pas require().

Pour utiliser Require Js. Il suffit de suivre ce link

+1

Le problème n'est pas le chemin. C'est que 'require' n'est pas défini – blex

+0

@blex si c'est le problème alors comment ça marche dans server.js? –

+0

@Rahul Singh une bonne question pour résumer mon problème :) –