nodejs Mongoose
Mình hiện đang làm menu con trong nodejs mình đã hiện được tất cả các sản phẩm trong nhasx.Giờ mình muốn lấy menu cha là tennhasx,menu con là ten trong bảng sản phẩm mình phải làm sao.Mong mọi người giúp.Mình xài ejs lam frontend.Mong moi người giúp đỡ chứ mình rất là dỡ code.Cụ thể viết code ra sau chứ mình mới học về nodejs thui
1 CÂU TRẢ LỜI
Bạn định làm cái menu kiểu kiểu này đúng không nhỉ ? Bạn thử code như dưới đây xem
router.get('/menu', (req, res) => {
nhasx.find()
.exec((err, result) => {
if(err){ // handle nếu có lỗi query }
res.render('menu', {
category : result,
});
});
});
<ul>
<li class="current-menu-item"><a href="#">Home</a></li>
<% category.forEach((item) => { %>
<li><a href="#"><%= item.tennhasx %></a>
<ul>
<% item.sanpham.forEach((subItem) => { %>
<% if(subItem.nhasx !== item._id){ %>
<li><a href="#"><%= subItem.ten %></a></li>
<% } %>
<% })%>
</ul>
</li>
<% })%>
</ul>
Nó báo lỗi rùi bạn ơi
bạn có facebook không kết bạn với mình chỉ mình được không
@Thanhtan123 Nó báo lỗi gì bạn nhỉ ? Bạn chụp lỗi lên đây được không ? Mình không nắm rõ schema của bạn chính xác như thế nào ? Nên đoạn code trên nó chỉ tương đối thôi, kiểu đại khái nguyên lý là như thế, bạn sửa lại cho phù hợp ý... ^^
@Thanhtan123 À. Lỗi này chắc do bạn chưa sửa lại câu query của mình cho phù hợp với code của bạn thôi. Mình đã chạy thử code của mình mà ra kết quả như trên hình mình chụp á... Lỗi này do chưa query ra được sản phẩm. Bạn thay đúng tên schema của bạn định nghĩa trong code Nodejs là được ấy.
router.get('/menu', (req, res) => {
THAY_TEN_SCHEMA_NHASXES.find()
.exec((err, result) => {
if(err){ // handle nếu có lỗi query }
res.render('menu', {
category : result,
});
});
});
@xdangminhtruongx Bạn có xài teamview không Mình thay tên xong không ra dược nhasx luon
@Thanhtan123 Bạn cho mình xem đoạn code nodejs bạn định nghĩa schema nhasx (cái tạo ra bảng nhasxes như hình trên cùng cuả bạn ý) với được không ?
tai mình lưu vào mongoose nó tự tạo ra thui
@Thanhtan123 Ặc. Cái hình bạn đăng là kết quả bạn chạy câu query ra rồi. vậy mà mình cứ tưởng bạn set quan hệ embeded sản phẩm trong loại sản phẩm nữa. Xin lỗi bạn nhé. Vậy bạn không cần chạy phần code nodejs trên ví dụ của mình nữa. Sửa dụng câu query của bạn là được rồi. Khi sử dụng vòng lặp đổ dữ liệu ra ở ejs ý bạn check như của mình ý if(subItem.nhasx !== item._id) thì hẳng show ra. Không thì thôi...
@xdangminhtruongx mình thì lấy được tennhasx rùi nhưng không lấy được tên của sản phẩm của từng nhà sản xuất thui mình lên mạng mò được câu lệnh đó mà không biết xử lý thế nào thui
@Thanhtan123 Thì bạn có được kết của như ý đấy rồi còn gì. Việc còn lại là xử lý trên ejs để đổ ra dữ liệu như bạn muốn thôi. Đoạn code đổ dữ liệu ra bạn làm giống ví dụ của mình là được mà...
@Thanhtan123 tên facebook và avata của mình giống hệt tài khoản viblo. Nếu không được bạn add fb mình, ta cùng check xem nhé...
@xdangminhtruongx làm phiền bạn nhập tên fb của mình vậy https://www.facebook.com/thanhtam.phan.77 chú mình chỉ thấy có google và gifhub thui