Express_Passport
Nếu bạn đang dùng mongoDB thì trong Schema user bạn tạo thêm methods validPassword kiểu thế này này
User.methods.validPassword = function( pwd ) {
return ( this.password === pwd );
};
Bạn đang dùng OS/distro nào? Cảm thấy ra sao?
1 năm trước mình bắt đầu chuyển hẳn sang dùng ubuntu và không bao giờ có ý định quay lại dùng win nữa
Một số đồng nghiệp của mình bảo giờ họ dùng win chủ yếu chỉ để chơi game thôi. Vẫn phải cài song song ubuntu chứ không nó cứ "sao sao" thật...
Javascript: Hỗ trợ bài tập
Mình dùng được indexOf này 😅
Xác thực Login
Cho bạn cái file này nè. Bạn thông cảm nhé, hồi đó mình mới học nên code xấu thậm tệ , chưa biết dùng template literals nên cứ cộng chuỗi nhìn thấy gớm Nhưng hy vọng nó vẫn có chút xíu gì đó có ích với bạn ^^
https://github.com/dangminhtruong/nodejs_lab/blob/master/routes/users.js
Trong đây có đăng nhập, đăng ký, đổi mật khẩu user luôn đó...
nodejs Mongoose
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>
Relashionship 1 - n, 1 - 1 và n - n trong MongoDB được biểu diễn như thế nào?
Theo quan điểm cá nhân của mình ý. Mình nghĩ bạn nên giành thêm thời gian tìm hiểu chứ một câu trả lời khó lòng tóm gọn hết kiến thức cho bạn.
Trên Viblo cũng có nhiều bài viết về mongodb, có cả bài đề cập, so sánh những phần có thể xem là tương ứng giữa RDBMS với Nosql.
Nhưng theo mình nghĩ thì Nosql là Nosql, một số kinh nghiệm khi làm việc với sql đôi khi hữu ích khi chuyển qua nosql như thường thì một đơn hàng có thể cần có các trường như tổng đơn hàng, ngày đặt hàng..v..v mà từ đó thiết kế ra một schema với các field phù hợp. Hoặc đơn hàng phải có chi tiết đơn hàng - và từ đó mà tìm ra cách set quan hệ embeded giữa đơn hàng và "chi tiết đơn hàng"... Hoặc đơn hàng thì cần biết thêm thông tin người đặt hàng, nên cần lựa chọn thêm quan hệ referent giữa đơn hàng và schema user chẳng hạn.
Nhưng cần phải tìm hiểu nosql trước - cụ thể của bạn là MongoDB, để có được một số khái niện căn bản trước sau đó mới mapping như thế. Chứ học nosql từ đầu, mà cứ vừa học vừa gắng bê hết kiến thức về sql mà quy chiếu sang thì mình nghĩ không nên...
Use old data in nodejs
E vẫn chưa hiểu làm sao để check xem thử 1 tài khoản đã tồn tại trong database (sử dụng mongodb) như thế nào ạ?
Cái này thì bạn truy vấn trong db xem có thông tin đăng ký đấy chưa, tìm theo email hoặc số điện thoại gì đó ý, nếu có kết quả truy vấn thì user đã tồn tại, nếu không có kết quả nào thì cho đăng ký tiếp. Kiểu thế này này:
User.find({ email : req.body.email }).count()
.exec((error, result) => {
// xử lý trường hợp kết quả query có hay không có user....
});
Hoặc bạn có thể dùng passportjs thì sẽ tiện hơn đó.
Và làm thế nào khi gặp lỗi lúc register thì trả về lại trang đăng ký ... Bên laravel thì có {{ old(filed) }}
Laravel là framework hết sức đồ sộ. Express giản tiện hơn Laravel nhiều, nên có nhiều thứ laravel có mà express không có đâu...
Mình dùng Nodejs làm API thôi. Nên việc xử lý với view engine (chắc bạn dùng ejs nhỉ ? ) mình cũng không rành lắm, nhưng mình nhớ là không có đâu. Cách đơn giản nhất là, khi người dùng gửi request kèm thông tin đăng ký/ đăng nhập lên , bạn validate dữ liệu. Nếu thông tin sai, thì đơn giản là trả ngược lại khối data vừa gửi lên đó ra view để render lại (đổ chúng vào các input field tương ứng hồi nãy) là được ấy.
router.get('/user/register', (req, res) => {
// Validate dữ liệu, nếu ok hết thì xử lý tiếp, lưu vào db hay gì đó
// Nếu sai
res.render('./user/pages/register', {
registerData : {
username: req.body.username,
phone: req.body.phone,
......
}
});
});
Hoặc bạn có thể dùng ajax đừng load lại cả trang nữa, hoặc package này có vẻ cũng được này old-input
Validation trong NodeJS
Chắc là bạn sẽ dùng express rồi, bạn thử dùng package này thử xem :
https://github.com/express-validator/express-validator. Mình xem qua thấy cũng khá phù hợp...
How to send data to chart?
Nếu bạn dùng jquery và dùng chart.js thì chắc trong document.ready bạn tạo một function gửi lên một request để lấy data từ serve. Có data này rồi thì bạn new Chart() và thả response data đó vào datasets của chart.js như bình thường là okie đấy
Error: Cannot enqueue Handshake after already enqueuing a Handshake
Bạn có thể tham khảo dùng thử Sequelize thử xem... Nó tốt phết, chứ dùng mysqljs viết truy vấn lằng nhằng mắc mệt... http://docs.sequelizejs.com/
Tổ chức
Chưa có tổ chức nào.