2011-09-03 35 views
6

Vì vậy, tôi có ứng dụng của tôi tại http://localhost:8080/lưu trữ nhiều trang trên nodejs

Làm thế nào tôi có thể có http://localhost:8080/subpage? Vì có vẻ như bất kỳ trang nào truy cập: 8080 kéo máy chủ.js

cảm ơn!

** chỉnh sửa - đây là những gì làm việc cho tôi (nhờ stewe củacâu trả lời) **

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, ở dạng hiện tại, câu hỏi của bạn sẽ bị đóng. Bạn cần cung cấp thêm chi tiết, chẳng hạn như mã hiện tại của bạn và những gì bạn đã thử. Ngoài ra, bạn đã thử Googling vấn đề của mình chưa? Đây là một điều phổ biến với Node. –

+0

@ Brandon, tôi không nghĩ đó là một câu hỏi tồi. Tôi đoán OP đang cố gắng tìm ra những gì Node.js có thể và không thể làm được. Tôi không + 1-ing nó bởi vì, có, ông có thể có googled cho nó. – Malvolio

+2

@everyone - Tôi đã dành gần một giờ "nghiên cứu" (sử dụng google) để tìm câu trả lời này. Tôi đã không tìm thấy bất cứ điều gì mà đưa ra câu trả lời này đi vì vậy tôi chuyển đến khu nghỉ mát cuối cùng của tôi mà là SOF. Tôi không thích đặt câu hỏi ở đây trừ khi tôi nghĩ rằng tôi đang gặp khó khăn khi tìm câu trả lời. Ngoài ra, hãy nhớ rằng tôi giữ các câu hỏi này đơn giản để dễ đọc. Tại sao lại đưa ra một câu hỏi phức tạp cho một cái gì đó mà rất có thể có một câu trả lời không phức tạp? Có lẽ sự thiếu hiểu biết nhẹ thể hiện bản thân nó bởi một ai đó đang đẩy nút "đóng" .. – Jacksonkr

Trả lời

6

Dưới đây là một khởi đầu:

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, đó phải là nơi 'rs.readfile (__ dirname + '/ index.html'' xuất hiện. Marvelous. Tôi sẽ thêm nó vào – Jacksonkr

4

tôi nhấn cùng một vấn đề như bạn đã làm, và tôi nghĩ rằng cả hai chúng tôi đang tìm kiếm cơ bản là một công cụ định tuyến cho node.js. Về cơ bản, được rồi tôi lấy ví dụ hello-world cho nodej, nhưng làm thế nào để xây dựng một cái gì đó đáp ứng với các yêu cầu khác nhau?

Đối với người dùng trong tương lai truy cập trang này qua google, bạn phải xem số Express.js và hướng dẫn và giới thiệu tuyệt vời này thành express, Understanding Express.js. Hai điều này sẽ giải quyết vấn đề

+2

Liên kết của bạn để hiểu Express.js không thành công. Hãy xóa "-js" trên liên kết hoặc truy cập tại đây: http://evanhahn.com/understanding-express/ – NuclearPeon

+0

Cố định - cảm ơn! –

Các vấn đề liên quan