2011-09-03 24 views
6

Así que tengo mi aplicación en http://localhost:8080/sede de varias páginas en nodejs

¿Cómo puedo tener http://localhost:8080/subpage? Porque parece que cualquier página que golpea: 8080 tira del servidor.js

gracias!

** Editar - esto es lo que funcionó para mí (gracias a de Stewerespuesta) **

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, en su forma actual, su pregunta será cerrada. Debe proporcionar más detalles, como su código actual y lo que ha intentado. Además, ¿has probado Google tu problema? Esto es algo común con Node. –

+0

@Brandon, no creo que sea una mala pregunta. Supongo que el OP intenta descubrir qué es lo que Node.js puede y no puede hacer. No estoy + 1-ing porque, sí, podría haber buscado en Google. – Malvolio

+2

@everyone - Pasé casi una hora "investigando" (usando google) para encontrar esta respuesta. No encontré nada que diera esta respuesta, así que me mudé a mi último recurso, que era SOF. No me gusta hacer preguntas aquí a menos que crea que estoy teniendo dificultades para encontrar la respuesta. Además, tenga en cuenta que mantuve estas preguntas simples para que sea fácil de leer. ¿Por qué hacer una pregunta compleja para algo que muy probablemente tiene una respuesta no tan compleja? Tal vez la ignorancia leve se manifiesta por alguien presionando el botón "cerrar" ... – Jacksonkr

Respuesta

6

Aquí es un comienzo:

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, ahí debe estar el 'rs.readfile (__ dirname + '/ index.html''. Maravilloso. Agregaré esto a mi pregunta una vez que está funcionando. ¡Gracias! – Jacksonkr

4

me dio en el mismo problema que lo hizo, y creo que lo que estábamos buscando es básicamente un motor de enrutamiento para node.js. Básicamente, está bien, obtengo el ejemplo de hello-world para nodejs, pero ¿cómo creo algo que responda a diferentes solicitudes?

Para futuros usuarios que desembarquen en esta página a través de google, debe mirar Express.js y esta excelente guía e introducción en express, Understanding Express.js. Estos dos resolverán el problema

+2

Su enlace a Understanding Express.js falla. Quite el "-js" en el enlace o vaya aquí: http://evanhahn.com/understanding-express/ – NuclearPeon

+0

Reparado - ¡gracias! –

Cuestiones relacionadas