Asked Sep 21st, 2018 1:18 AM 78 0 1
  • 78 0 1
+1

nodejs Mongoose

Share
  • 78 0 1

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 ANSWERS


Answered Sep 21st, 2018 2:59 AM
Accepted
+1

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 😋 😋 😋 fsdfsd.png

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>
Share
thanh tam Phan @Thanhtan123
Sep 21st, 2018 11:47 AM

Nó báo lỗi rùi bạn ơi

0
| Reply
Share
thanh tam Phan @Thanhtan123
Sep 21st, 2018 12:20 PM

bạn có facebook không kết bạn với mình chỉ mình được không

0
| Reply
Share
Truong Dang @xdangminhtruongx
Sep 21st, 2018 12:27 PM

@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 ý... ^^

0
| Reply
Share
thanh tam Phan @Thanhtan123
Sep 21st, 2018 12:50 PM
0
| Reply
Share
Truong Dang @xdangminhtruongx
Sep 21st, 2018 12:53 PM

@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,
		});
	});
});
0
| Reply
Share
thanh tam Phan @Thanhtan123
Sep 21st, 2018 12:58 PM

@xdangminhtruongx Bạn có xài teamview không Mình thay tên xong không ra dược nhasx luon

0
| Reply
Share
Truong Dang @xdangminhtruongx
Sep 21st, 2018 12:59 PM

@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 ?

0
| Reply
Share
thanh tam Phan @Thanhtan123
Sep 21st, 2018 1:00 PM
0
| Reply
Share
thanh tam Phan @Thanhtan123
Sep 21st, 2018 1:02 PM

tai mình lưu vào mongoose nó tự tạo ra thui

0
| Reply
Share
Truong Dang @xdangminhtruongx
Sep 21st, 2018 1:04 PM

@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...

0
| Reply
Share
thanh tam Phan @Thanhtan123
Sep 21st, 2018 1:06 PM

@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

0
| Reply
Share
Truong Dang @xdangminhtruongx
Sep 21st, 2018 1:08 PM

@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à...

0
| Reply
Share
Truong Dang @xdangminhtruongx
Sep 21st, 2018 1:09 PM

@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é...

0
| Reply
Share
thanh tam Phan @Thanhtan123
Sep 21st, 2018 1:12 PM

@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

0
| Reply
Share