web-dev-qa-db-fra.com

nodejs connect ne peut pas trouver statique

NOTE: J'ai essayé une autre solution donnée ici mais cela n'a pas fonctionné

Un débutant avec NodeJs. J'essaie de suivre AngularJS pro et je me suis retrouvé avec la configuration du serveur NodeJs. Selon book, j’ai installé nodejs puis installé le paquet connect à l’aide de npm install connect

puis téléchargé angularjs dans le dossier à côté du dossier nodejs. Puis écrit le fichier server.js pour se connecter au serveur. Voici le contenu du fichier:

    var connect = require('connect');
connect.createServer(connect.static("../angularjs")).listen( 5000);

Quand j'exécute ce fichier server.js en utilisant:

node server.js

J'ai l'erreur suivante:

 function app(req, res, next){ app.handle(req, res, next); }
 merge(app, proto);
 merge(app, EventEmitter.prototype);
 app.route = '/';
 app.stack = [];
 return app;
 has no method 'static'
   at Object.<anonymous> (C:\web\nodejs\server.js:2:36)
   at Module._compile (module.js:456:26)
   at Object.Module._extensions..js (module.js:474:10)
   at Module.load (module.js:356:32)
   at Function.Module._load (module.js:312:12)
   at Function.Module.runMain (module.js:497:10)
   at startup (node.js:119:16)
   at node.js:906:3

Des idées les gars? Merci.

116
Sheraz

Le package connect a apporté des modifications à la dernière version 3.x de leur base de code, déplaçant le middleware static vers son propre package. Vous pouvez voir la liste des paquets qui ont été déplacés ici .

Donc, vous avez deux options:

Option 1
Vous pouvez installer une version 2.x plus ancienne de connect et l’utiliser telle quelle:

$ npm install [email protected]

L'installation de la dernière version 2.X.X permettra à votre implémentation actuelle de fonctionner correctement.

Option 2
Vous pouvez continuer à utiliser la version 3.x de connect et également ajouter serve-static:

$ npm install serve-static

Vous devrez également mettre à jour votre server.js fichier pour inclure le nouveau serve-static module:

var connect = require('connect'),
    serveStatic = require('serve-static');

var app = connect();

app.use(serveStatic("../angularjs"));
app.listen(5000);
218
dylants

La réponse de dylants est utile. Cependant, voici les étapes exactes que j'ai suivies afin de résoudre la même erreur. 1. Dans la fenêtre de commande, accédez au répertoire dans lequel vous avez installé nodeJS. 2. Après avoir déjà exécuté npm install connect, exécutez:

npm install serve-static

3. Créez un fichier nommé server.js avec le code suivant:

var connect = require('connect'),
serveStatic = require('serve-static');

var app = connect();

app.use(serveStatic("./angularjs"));
app.listen(5000);
  1. Toujours dans la fenêtre de commande, et toujours dans le répertoire dans lequel vous avez installé nodeJS, exécutez:

    noeud serveur.js

  2. Accédez à l'URL http: // localhost: 5000/test.html

Cela devrait marcher. Voici la configuration de mon répertoire: C:\NodeJSInstallLocation\angularjs

8
joey
var connect = require('connect'),
    serveStatic = require('serve-static');

connect().use(
    serveStatic("angularjs")
).listen(5000);
1

Vous voudrez peut-être essayer quelque chose comme ça

var express = require('express');
var app = express();
app.use(express.static('angularjs'));
1
Gautam Anand