2012-08-28 24 views
9

Tôi khá mới với Javascriptnode.js và tôi đang cố gắng tạo một REST API và các url sẽ có dạng.cách lấy Id từ URL trong khi đang sử dụng node.js

  1. /user/{userId}/docs

Tôi cố gắng để có được giá trị của {userId}, mà trong trường hợp của /user/5/docs sẽ 5.

Tôi có thể cố gắng chuyển thông số này dưới dạng tham số yêu cầu (trong chuỗi truy vấn hoặc trong phần thân, tùy thuộc vào phương pháp GET hoặc POST), nhưng url trông trực quan hơn khi được tạo thành ý chí này. Ngoài ra còn có nhiều url khác giống như vậy.

Tôi tự hỏi nếu có bất kỳ mô-đun nút nào giống như biểu thức cung cấp cho điều này.

Tôi là người dùng Java truyền thống và Jersey được sử dụng để cung cấp những thứ như vậy trong Java.

Cảm ơn, Tuco

+0

Vâng, module Express cung cấp này. – JohnnyHK

+0

Xin chào Johnny, bạn có thể vui lòng cung cấp một ví dụ không. – Tuco

+0

Xem câu trả lời của josh. – JohnnyHK

Trả lời

45

Dành một chút thời gian với the documentation. Express sử dụng các : để biểu thị một biến trong một con đường:

app.get('/user/:id/docs', function(req, res) { 
    var id = req.params.id; 
}); 
1

Viết sau trong script server:

var http = require('http'); 
var server = http.createServer(function (request, response) { 
    var url = request.url; //this will be /user/5/docs 
    url.id = url.split("/")[2]; // this will be 5 
    response.writeHead(200, {'Content-Type' : 'text/html'}); 
    response.end("Id is = " + url.id); 
}); 
server.listen(8000, '127.0.0.1'); 
+0

Tôi cũng nhận thấy điều này, khi tôi 'tách ('/')', tôi nhận được một mảng với các chỉ mục đầu tiên và cuối cùng dưới dạng chuỗi trống ... tại sao lại như vậy? – denikov

0
var pathName = url.parse(request.url).pathname; 
var id = pathName.split("="); 
var userId = id[1]; 
Các vấn đề liên quan