2011-09-03 13 views
6

quindi devo la mia app in http://localhost:8080/ospitare più pagine su nodejs

Come posso avere http://localhost:8080/subpage? Perché sembra che qualsiasi pagina che colpisce: 8080 tira il server.js

grazie!

** modifica - ecco cosa ha funzionato per me (grazie a di stewerisposta) **

var app = require('http').createServer(createServer); 
var fs = require('fs'); 
var url = require('url'); 

function createServer(req, res) { 
    var path = url.parse(req.url).pathname; 
    var fsCallback = function(error, data) { 
     if(error) throw error; 

     res.writeHead(200); 
     res.write(data); 
     res.end(); 
    } 

    switch(path) { 
     case '/subpage': 
      doc = fs.readFile(__dirname + '/subpage.html', fsCallback); 
     break; 
     default: 
      doc = fs.readFile(__dirname + '/index.html', fsCallback); 
     break; 
    } 
} 

app.listen(8080); 
+2

Jackson, nella sua forma attuale, la tua domanda sarà chiusa. È necessario fornire maggiori dettagli, come il codice corrente e ciò che hai provato. Inoltre, hai provato a cercare su Google il tuo problema? Questa è una cosa comune con Node. –

+0

@ Brandon, non penso che sia una cattiva domanda. Immagino che l'OP stia cercando di capire cosa può e non può fare Node.js. Non lo faccio + 1 perché, sì, avrebbe potuto cercarlo su Google. – Malvolio

+2

@everyone - Ho trascorso quasi un'ora a "ricercare" (utilizzando google) per trovare questa risposta. Non ho trovato nulla che ha dato questa risposta, quindi mi sono trasferito nella mia ultima risorsa che era SOF. Non mi piace fare domande qui a meno che non pensi di avere difficoltà a trovare la risposta. Inoltre, tieni presente che ho mantenuto queste domande semplici in modo che sia di facile lettura. Perché fare una domanda complessa per qualcosa che molto probabilmente ha una risposta non troppo complessa? Forse la blanda ignoranza si manifesta da qualcuno che preme il pulsante "chiudi" .. – Jacksonkr

risposta

6

Qui è un inizio:

var http=require('http'); 
var url=require('url'); 

var server=http.createServer(function(req,res){ 
    var pathname=url.parse(req.url).pathname; 
    switch(pathname){ 
     case '/subpage': 
      res.end('subpage'); 
     break; 
     default: 
      res.end('default'); 
     break; 
    } 

}).listen(8080); 
+0

ah, che deve essere il dove rs.readfile (__ dirname + '/ index.html'' entra. Meraviglioso. Aggiungo questo al mio domanda una volta funzionante, grazie! – Jacksonkr

4

mi ha colpito lo stesso problema come l'hai fatto, e penso che quello che stavamo cercando era fondamentalmente un motore di routing per node.js. Fondamentalmente, okay, ottengo l'esempio ciao-mondo per nodejs, ma come faccio a costruire qualcosa che risponde a diverse richieste?

Per gli utenti futuri che arrivano su questa pagina tramite google, è necessario guardare Express.js e questa guida eccellente e intro in espresso, Understanding Express.js. Questi due risolveranno il problema

+2

Il tuo link a Understanding Express.js ha esito negativo. Rimuovi "-js" sul link o vai qui: http://evanhahn.com/understanding-express/ – NuclearPeon

+0

Fisso - grazie! –

Problemi correlati