Yêu cầu thg 9 21, 2018 1:18 SA 148 0 1
  • 148 0 1
+1

nodejs Mongoose

Chia sẻ
  • 148 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 CÂU TRẢ LỜI


Đã trả lời thg 9 21, 2018 2:59 SA
Đã được chấp nhận
+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>
Chia sẻ
Avatar thanh tam Phan @Thanhtan123
thg 9 21, 2018 11:47 SA

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

Avatar thanh tam Phan @Thanhtan123
thg 9 21, 2018 12:20 CH

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

Avatar Truong Dang @xdangminhtruongx
thg 9 21, 2018 12:27 CH

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

Avatar thanh tam Phan @Thanhtan123
thg 9 21, 2018 12:50 CH
Avatar Truong Dang @xdangminhtruongx
thg 9 21, 2018 12:53 CH

@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,
		});
	});
});
Avatar thanh tam Phan @Thanhtan123
thg 9 21, 2018 12:58 CH

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

Avatar Truong Dang @xdangminhtruongx
thg 9 21, 2018 12:59 CH

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

Avatar thanh tam Phan @Thanhtan123
thg 9 21, 2018 1:00 CH
Avatar thanh tam Phan @Thanhtan123
thg 9 21, 2018 1:02 CH

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

Avatar Truong Dang @xdangminhtruongx
thg 9 21, 2018 1:04 CH

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

Avatar thanh tam Phan @Thanhtan123
thg 9 21, 2018 1:06 CH

@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

Avatar Truong Dang @xdangminhtruongx
thg 9 21, 2018 1:08 CH

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

Avatar Truong Dang @xdangminhtruongx
thg 9 21, 2018 1:09 CH

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

Avatar thanh tam Phan @Thanhtan123
thg 9 21, 2018 1:12 CH

@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

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí