J'essaie de commencer à servir des pages Web statiques en utilisant connect
comme ceci:
var connect = require("connect");
var nowjs = require("now");
var io = require("socket.io");
var app = connect.createServer(
connect.static(__dirname + '/public')
);
app.listen(8180);
J'ai donc ajouté un simple index.html
au répertoire /public
du même répertoire que le fichier app.js
, mais lorsque j'essaie d'afficher la page de mon navigateur, j'obtiens cette réponse du noeud:
Ne peut pas obtenir /
Qu'est-ce que je fais mal et comment je peux le corriger?
Ce code devrait fonctionner:
var connect = require("connect");
var app = connect.createServer().use(connect.static(__dirname + '/public'));
app.listen(8180);
Egalement dans la méthode connect 2.0 .createServer (), obsolète. Utilisez connect () à la place.
var connect = require("connect");
var app = connect().use(connect.static(__dirname + '/public'));
app.listen(8180);
Vous êtes peut-être ici parce que vous lisez le livre Apress PRO AngularJS
...
Comme décrit dans un commentaire de cette question de KnarfaLingus
:
[COMMENCER LE DEVIS]
Le module de connexion a été réorganisé. faire:
npm install connect
et aussi
npm install serve-static
Ensuite, votre server.js
peut être écrit comme suit:
var connect = require('connect');
var serveStatic = require('serve-static');
var app = connect();
app.use(serveStatic('../angularjs'));
app.listen(5000);
[DEVIS FIN]
Bien que je le fasse, comme le livre le suggère, de manière plus concise,
var connect = require('connect');
var serveStatic = require('serve-static');
connect().use(
serveStatic("../angularjs")
).listen(5000);
Le message Cannot GET /
apparaît si vous ne spécifiez pas la page à essayer, autrement dit si votre URL ressemble à http://localhost:8180
. Assurez-vous de saisir un nom de page, par exemple http://localhost:8180/index.html
.
Avait le même problème. Il a été résolu comme décrit ci-dessus.
Dans mon index.js
var port = 1338,
express = require('express'),
app = express().use(express.static(__dirname + '/')),
http = require('http').Server(app),
io = require('socket.io')(http);
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
io.on('connection', function(socket){
console.log('a user connected');
});
http.listen(port, function(){
console.log("Node server listening on port " + port);
});
et dans mon index.html
<!doctype html>
<html>
<head>
<title>
My page
</title>
</head>
<body>
<script src = "lib/socket.io.js"></script>
<script src = "lib/three.js"></script>
<script>
var socket = io();
</script>
</body>
</html>
le three.js était juste là pour le test de trajectoire. Cela définira tous les fichiers enfants pour qu'ils démarrent au répertoire racine de votre application. Socket.io.js peut aussi être appelé automatiquement en utilisant <script src = "/socket.io/socket.io.js">
par magie noire (puisqu'il existe physiquement un noeud node_modules et un répertoire lib)
var connect = require('connect');
var serveStatic = require('serve-static');
var app = connect();
app.use(serveStatic('../angularjs'), {default: 'angular.min.js'}); app.listen(3000);
Vous voudrez peut-être aussi essayerst, un module de nœud permettant de servir des fichiers statiques. L'installation est triviale.
npm install connect
npm install st
Et voici à quoi ressemble mon fichier server-dev.js:
var connect = require('connect');
var http = require('http');
var st = require('st');
var app = connect()
.use(st('app/dev'));
http.createServer(app).listen(8000);
ou (avec cache désactivé):
var connect = require('connect');
var http = require('http');
var st = require('st');
var app = connect();
var mount = st({
path: 'app/dev',
cache: false
});
http.createServer(function (req, res) {
if (mount(req, res)) return;
}).listen(8000);
app.use(mount);
Le moyen le plus simple de servir des fichiers statiques est d'utiliser "harp". Il peut être trouvé ici. Vous pouvez servir vos fichiers depuis l’emplacement de votre choix via le noeud est:
var harp = require("harp")
harp.server(projectPath [,args] [,callback])
J'espère que cela t'aides.
Vous aurez peut-être besoin de restart
le processus si app.get
not
fonctionne. Appuyez sur ctl+c
puis sur restart node app
.