Ai biết chỉ giúp mình cách get id cho trang chi tiết với. thanks.
-
Khi click vào ảnh thì nó lấy sẽ chuyển sang trang chi tiết kèm theo id,
Mình muốn lấy được dữ liệu từ database theo id rồi đổ ra trang chi tiết
Bên server mình viết thế này:
Bên client:
Và kết quả ra 1 mớ html:
Ai biết mình sai ở đâu ko ạ, cho mình biết cách làm luôn , thanks all. -
Với PHP thì viêc này đơn giản quá, nhưng nodejs thì mình chưa biết làm
-
@Lê-Văn-Hoàng lúc get bên client, phần :id bạn phải bỏ id thật vào chứ
-
@khoaichat lấy id thật của nó như thế nào vậy ạ
-
@Lê-Văn-Hoàng
ở phía server bỏ res.render... thử xem
ps:
Bỏ cả next();
thêm return ở trước res.json(data); -
@Khoa-Lê-Duy nhưng ko render thì lấy giao diện web kiểu gì ạ
-
@Lê-Văn-Hoàng mình tưởng bạn chỉ lấy json
thử cách này xem
router.get('/url', function (req, res) { collection.find(filter,function(err, data){ return res.render( 'path_to_template', { data: data }); }) });
-
@Khoa-Lê-Duy thế còn bên này thì lấy data kiểu gì a
-
@Lê-Văn-Hoàng vì bạn vẫn tư duy kiểu PHP nên mới code kiểu vậy. Bạn đã render page rồi, thì những code phía sau gần như chẳng có ah tới nữa.
Chắc bạn phải học javascript cơ bản lại thôi, mình "giao thiệp nghiêm khắc" vậy. ahihi -
@Ann-Nguyễn đúng là mình tư duy theo PHP thật
Hay cái này phải dùng session để lưu data -
@Lê-Văn-Hoàng cái controller đó mình cũng không hiểu bạn đang làm gì:(
Cơ bản là không hiêu ý nhà thơ -
@Khoa-Lê-Duy ở đây tác giả muốn lấy giấy bút(dữ liệu trong database) để viết thơ(page detail) :v
-
Thế mình hỏi bạn bên PhP bạn code thế nào mà bạn bảo đơn giản. Nodejs no cũng chỉ khác về code chứ có khác gì nữa, đã code oke bên PhP thì bê nguyên cái logic đó sang thôi, nghi vấn nặng về bạn.
-
@Ann-Nguyễn php có biết $_GET, lấy được id ngay,
Mình mới học nodejs có hơn tuần à, nên chưa quen -
@Lê-Văn-Hoàng
Hình như là do nhầm cái res.render thôi. Nếu res.render thì bạn dùng Express và 1 Engine render 1 template HTML + Data bạn có truyền vào và gửi về client đó. Nhưng nếu bạn theo hướng lấy data json raw như client code á. Thì res.json về là được rồi. Bỏ res.render + next đi. Sau đó nhận được data thì đẩy vào client (có thể là angularjs,... gì đó). -
@Lê-Văn-Hoàng said in Ai biết chỉ giúp mình cách get id cho trang chi tiết với. thanks.:
@Ann-Nguyễn php có biết $_GET, lấy được id ngay,
Mình mới học nodejs có hơn tuần à, nên chưa quenBạn nên tìm hiểu trước khi đặt câu hỏi
Mình cũng đi từ php dev lên không phải đi lên từ cây lúa
Php mình cũng chỉ biết $_REQUEST thôi không biết $_GET là gì
Trước tiên bạn làm bài này trước rồi hãy bắt đầu những cái lớn lao
https://expressjs.com/en/starter/hello-world.html
Thân -
@Khoa-Lê-Duy Vấn đề là việc chạy cái hello word đó thì nó chỉ là cái cơ bản mà người học ngôn ngữ nào cũng có, như echo "Hello word" trong php thôi.
Mình làm cái đó đầu tiên rồi mới đi vào làm cái web tin tức hoàn chỉnh này,
đến đâu bug lỗi đến đó -
@Nguyen-Hien ý mình muốn lấy dữ liệu trong database theo id, sau đó đưa ra view có page html và data truyền vào nên nghĩ đến dùng render để lấy view page, mình chưa biết xử lý sao cho hợp lý.
-
Bạn này lủng javascript và nodejs thật rồi đó. Thì đúng như ban đầu res.render(template,{data:data}) thì sẽ cho ra một mẫu html chứ sao.
Bên client dùng angular get đến api này thì nó cũng sẽ trả về cái html đó.Bạn cứ hỏi lòng vòng, chẳng rõ bạn hỏi gì. đến loạn cả vấn đề !
Đề nghị bác mod nào close thread này cái để bạn thread có thời gian nắm vững kiến thức nodejs. Rồi khi bạn đã chắc thật chắc rồi, quay lại đây đọc góp ý của các bạn đã nhiệt tình thì bạn sẽ thấy vấn đề. -
route.get('details/:id', function(req, res) {
var id = req.params.id;
//nên console.log(id); chỗ này xem có lấy dc id không, nếu không thì khai báo: var id = req.body.id xem.
db_news.news.find({_id: mongojs.ObjectId(id)}, function(err, data) {
res.render('home/news/detail', {new: data});
})
});- detail.pug
title #{new.title}
content #{new.content}
- detail.pug