01/10/2018, 11:13
Node js full url ra dữ liệu không mong muốn
Hi, anh chị em
Tại sao trong node js mình get full url như sau
var fullUrl = req.protocol + '://' + req.get('host') + req.originalUrl; console.log(fullUrl);
Sao nó ra một đống thế này
http://localhost:8080/welcome/test1
http://localhost:8080/welcome/css_united.css
http://localhost:8080/welcome/js/bootstrap.min.js
http://localhost:8080/welcome/js/jquery.min.3.2.1.js
http://localhost:8080/welcome/js/angular.min.1.6.3.js
làm sao xử lý chỉ lấy dòng đầu.
Mong cao nhân chỉ giáo, thk
Bài liên quan
Thêm thông tin đi bạn, ít nhất cũng cho đoạn route hoặc vòng lặp bạn cho cái dòng console.log kia chứ để mỗi 2 dòng thế ai mà fixx nổi cho bạn
});
đoạn này dùng để check tất cả url đi vào
Bạn cần cho biết mục đích lấy url là gì, bởi vì việc bạn dùng route lấy toàn bộ request sau đó chọn 1 request là việc rất ba chấm, các request không liên quan tới nhau, nó không nằm trong mảng nào cả, việc tách ra rất khó.
static array
(nếu như node.js support) để lưu lại số lần request từ client đó, lưu các url đó vào mảng static đó, khi hết request sẽ lấy url đầu tiên từ mảng đó, cuối cùng là tiến hành set array đó về null/emptyMình muốn tách các tham số
http://localhost:8080/welcome/test1 ----> welcome test1
http://localhost:8080/welcome/test2 ----> welcome test2
http://localhost:8080/welcome/test3 ----> welcome test3
http://localhost:8080/welcome/test4 ----> welcome test4
thế thôi
route của bạn lấy tất cả request đầu vào, vậy nên không thể tách đơn giản được, giải pháp là move các request của resource file stream sang /media/ hoặc bất cứ thứ gì bạn muốn, sau đó regex url của nó.
Ngoài ra chắc bạn cần chọn giải pháp khác, không map toàn bộ url nữa
Giả sử route được khai báo:
app.get(’/:module/:id’);
req.params: {module: “welcome”, id: “test”}
lấy các tham số động trong ngoặc kép
req.path: “/welcome/test”
Lấy path của url
app.get (’/:class/:fn’,function(req,res){…});
có tương đương không?
Sorry, mình nhầm, bạn viết đúng rồi
Nhầm bên NestJS
Hix vô tình mà giải quyết được cái lỗi này rồi, note lại đễ khi có ai cần
Vào cái chỗ layout, thêm dấu / vào tất cả các js, css…
ví dụ:
app.use(function (req, res, next){…});
là nơi tuyệt vời để check các path đầu vào và khởi động biến của node js express …
Một ví dụ hữu ích như sau
Khai báo global:
app.locals.cur_path="";
Kích hoat
use in controller