🌹Bạn nào muốn mua cho mình cốc cà phê, cái pizza hay chỉ là gói mì tôm hảo hảo, hãy dùng MoMo quét mã QR tại link này nhé: me.momo.vn/hoidanit (lưu ý: tên người nhận là PHAM VAN TUAN) Đây là video #25 trong series học và thực hành (miễn phí) để trở thành 1 fullstack web developer. 👉Xem Full Playlist này tại đây: kzbin.info/www/bejne/jKfZiZuEl6uKgbs 👉 Cần giải đáp thắc mắc, cũng như hỗ trợ, tham gia group Facebook : facebook.com/groups/hoidanit 👉 Fanpage Facebook Tiếng Việt: facebook.com/askITwithERIC 👉Các bạn đăng ký kênh, Like cũng như comment để mình có thêm động lực làm video nha. Cảm ơn mọi người ❤ 👉Chanel khác của mình (Tiếng anh): kzbin.info/door/HqJxLo7mKam9GKqqwr2wfA
@ngocminhthienly78867 ай бұрын
series khóa học này đúng cái em cần tham khảo cho đồ án, các phiên bản mới nhất ai nói gì nói chứ em install toàn bộ các npm mới nhất chạy ngon lành k lỗi gì hết nếu có lỗi cũng tự mà fix, cảm ơn anh chúc anh nhiều sức khỏe !
@hoidanit7 ай бұрын
không nên cài version mới nhất bạn nhé. bạn hãy làm như video hướng dẫn (vì khi bạn cài mới nhất, có thể bị conflict đấy)
@ngocminhthienly78866 ай бұрын
@@hoidanit dạ cảm ơn anh góp ý ạ
@GOODBOY-vt1cf5 ай бұрын
20:39 ôn 14:27 class bootstrap row, col-6, col-12 15:18 margin trong bootstrap 16:20 vài điều về khóa học 16:42 nói về layout 29:27 action 32:04 req.body khí bấm button form 34:31 hash password người dùng bcypt 44:30 async và await 54: 28 nói về múi giờ
@ucnguyenduy89149 ай бұрын
Bánh cuốn quá anh :))) giờ mới xem series này, cài phiên bản các thứ quen tay tự tin hẳn, có mấy cái lỗi cũng tự sửa được chứ k như lúc mới học
@hoidanit9 ай бұрын
cảm ơn bạn đã ủng hộ :v
@DenDenCover2 жыл бұрын
Quá phê. E học lộ trình fe. (reacjs). Xong em cảm thấy có gì đó không đúng. Và khi e chuyển sang học be. Đến this video này của a. Thì thấy rất cool. Sướng, được tương tác với data,... .Maybe e theo be trước rồi học fe sau.
@hoidanit2 жыл бұрын
đây e nhé: kzbin.info/www/bejne/mGGyc3eaja2haNU
@AnhFang3 жыл бұрын
Rất bổ ích
@thanhatduong95842 жыл бұрын
quá dữ a ơi
@benamngungoc7973 жыл бұрын
xem video của a cuốn quá ạ
@411station9 ай бұрын
Video hữu ích quá! Cảm ơn bạn nhiều!
@hoidanit9 ай бұрын
cảm ơn bạn đã ủng hộ :v
@chieupham77682 жыл бұрын
may tìm dc khóa fullstack này
@hoidanit2 жыл бұрын
học thôi bạn. đường còn dài mà :v
@minhlhq623 жыл бұрын
Cho mình hỏi, ở 21:02, bạn nói là bên service side ko dùng id mà dùng name, bạn có thể giải thích nguyên nhân vì sao không.Thank you Eric.
@hoidanit3 жыл бұрын
google đi bạn. vì mình cũng ko biết đâu. sự thật đấy
@hoidanit3 жыл бұрын
stackoverflow.com/a/1397613
@minhlhq623 жыл бұрын
@@hoidanit Thank you!
@DenDenCover2 жыл бұрын
45:30 new Promise .... Xong .then .catch cũng tương tự đk ạ. E làm vậy, log vẫn ra hashPass
@nguyenxuanhuy247 Жыл бұрын
48:20 Hàm async đã return 1 Promise rồi tại sao phải return new Promise (async (resolve, reject)) vậy anh?
@hoidanit Жыл бұрын
à. a thích dùng thôi. e có thể dùng mình async await cug đc nhé
@thanhvienle65302 жыл бұрын
Dạ anh ơi ở 53:50 thì firstName với lastName của em nó hiển thị null, còn những cái còn lại đều đúng á anh. Em console.log(data) thì giá trị input nhận vào vẫn oke. Em tìm hiểu mãi mà vẫn không ra ạ. Mong anh giải đáp
@hoidanit2 жыл бұрын
check data truyền vào đi em :v
@ongoc53422 жыл бұрын
em cũng bị như trên , nếu console.log(data) thì in ra đúng hết , nhưng nếu chỉ in ra data.firstname thì lại là undefine
@ongoc53422 жыл бұрын
À , em nhầm Name với name hê hê , được rồi anh ạ
@viettiennguyen60688 ай бұрын
Dạ anh ơi, giờ làm sao để lưu dữ liệu có dấu bằng cách dùng ORM như trên ha a, e thử lưu nhưng nó ra vầy, vd như Nguyễn > Nguy?n, mong anh giải đáp giúp, cảm ơn a ạ.
@hoidanit8 ай бұрын
cái này là cấu hình mysql thôi bạn. bạn thử search cấu hình database mysql xem thế nào
@viettiennguyen60688 ай бұрын
@@hoidanit dạ e cảm ơn
@linggmanucian4901 Жыл бұрын
46:50, khi em ấn sign in thì bị như này ạ: UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch()
@Ahoeyt Жыл бұрын
bạn fix đc chưa chỉ mình vs @@
@linggmanucian4901 Жыл бұрын
@@Ahoeyt bạn để ý mấy cái id truyền vào bên crud.ejs ý, chỗ attributes của email, pass ...., trước mình bị sai ở đó
@-TruongQuangHy2 жыл бұрын
anh có video nào hướng dẫn tải source code lên github không anh? Do em tìm không thấy video nào hướng dẫn tải lên github
@hoidanit2 жыл бұрын
@@ học series về git đi em. em tìm theo playlist là thấy
@nguyenong68792 жыл бұрын
anh ơi cho e hỏi, có cách nào sử dụng mã hóa utf-8 trong mysql ko ạ, trong mấy video sau có phần này ko nhỉ, e nhập input tiếng việt thì xảy ra lỗi ạ. Mong a giải đáp
@hoidanit2 жыл бұрын
google đi e. ko thì e xem hết seri fullstack này, quay lại hỏi cũng chưa muộn
@nguyenong68792 жыл бұрын
@@hoidanit vâng e cảm ơn ạ
@phamvankhanh8202 жыл бұрын
đoạn từ 31:25 - 32:05 em nhập req.body theo trên video nhưng nó không in ra data mà lại ra undefine, trong khi đó server của vẫn chạy bình thường không có lỗi gì cả ạ . anh sửa giúp em đoạn này với ạ. em cảm ơn ạ!
@hoidanit2 жыл бұрын
check code đi em. còn bảo a fix hộ thì never nhé
@phamvankhanh8202 жыл бұрын
@@hoidanit ý em là anh có cho em xin ý kiến để em sửa với ạ😅😅
@hoidanit2 жыл бұрын
@@phamvankhanh820 check code thôi em. code từ từ thôi. chứ có N bạn học hết series này rồi nên a biết chắc chắn là code a ko có lỗi ;v
@anhkiethanguyen81102 жыл бұрын
chắc do bác chưa đặt name cho input
@nguyentienphat2772 Жыл бұрын
@@anhkiethanguyen8110 mình đặt name cho input rồi nhưng console.log(req.body) vẫn ra undifined :(
@hoangtruong5663 Жыл бұрын
ụa a cho e hỏi là sau khi thêm dữ liệu mới vào bảng user thì dữ liệu mẫu được tạo từ file seeder sao hk thấy nx v a
@hoidanit Жыл бұрын
bạn chayh seeder chưa
@DuyNguyen-rm1zi5 ай бұрын
a ơi teminal của em nhận về bị thiếu giá trị của email và password, res.body nó ở file nào để e tìm tới sửa được không ạ
@hoidanit5 ай бұрын
bạn check code frontend xem nó truyền lên chưa (nếu backend ko có)
@DuyNguyen-rm1zi5 ай бұрын
@@hoidanit thì ra em thiếu name Của email và password
@Lio2000_NguyenHoang6 ай бұрын
Thư viện sinh ra là để đì vơ lốp pơ lười hơn thôi :))
@tiếnnguyễn-o1f6 ай бұрын
a ơi phút 52 đổi đi , e check đi check lại câu lệnh giống y hệt mà chạy nó báo ReferenceError: Data is not defined, xog e check lại dòng console.log(data) thì nó bị mờ , hay bác nào đọc qua mà biết sao chỉ e với, ngồi check đi check lại giống y đúc mà lạ quá
@hoidanit6 ай бұрын
code vài lần cho nhớ bạn ơi. làm gì có chuyện là bạn code "y đúc đâu"
@tiếnnguyễn-o1f6 ай бұрын
@@hoidanit a xem e nên check lại đoạn nào ạ, huhu nhìn mãi k biết thiếu đoạn nào
@ucbaonguyen30963 жыл бұрын
anh ơi cho em hỏi giữa md5 vs bcrypt cái nào nó ổn hơn anh
@hoidanit3 жыл бұрын
theo hiểu biết của a thì bcrypt tốt hơn e nhé. có thể tốc độ hash password của bcrypt nó chậm hơn md5, tuy nhiên về độ bảo mật (security) thì nó lại cao hơn md5. còn vì sao thì e chịu khó google nhé. p/s: a ko học bảo mật thông tin, nên là cái nào phổ biến thì a dùng thôi :v
@duytule2346 Жыл бұрын
anh ơi khi em nhập database vào phpmyamin thì phần phonenumber với address của em là null là sao vậy anh
@hoidanit Жыл бұрын
do e ko đẹp chai đấy :v
@binhlethanh41212 жыл бұрын
anh ơi em có một thắc mắt mà suy nghĩ nó vẫn ko hiểu...trong models chúng ta tạo User nhưng trong cơ sở dữ liệu nó lại là Users....khi chúng ta db.User.create thì làm sao trong cơ sở dữ liệu nó biết trường nào mà thêm dữ liệu vào được ạ. Mong anh giải thích giúp em với ạ.
@hoidanit2 жыл бұрын
sequelize nó làm điều đấy. cơ mà cứ học tiếp đi em. dần dần sẽ ngộ ra nhé (vì trong series này anh có giải thích, cơ mà ko phải trong video này :v)
@haole196142 жыл бұрын
39:45 dòng 25, sao nó báo ko cần await v a
@hoidanit2 жыл бұрын
à. do cái service ko là 1 promise đấy em :v
@duchung78503 жыл бұрын
Anh ơi cho em hỏi cái chỗ var hashpassword= bcrypt.hashSync("B4c0/\/", salt); em để như này thì chạy được nhưng để là var hashpassword= bcrypt.hashSync(password, salt) như anh thì lại lỗi ạ
@hoidanit3 жыл бұрын
cái này "B4c0/\/" là input trong example của thư viện mà e. lỗi thì em xem nó báo lỗi gì, như thế nào, đọc lỗi rồi tìm cách fix, chứ em miêu tả như vậy, a ko giúp được e đâu
@vukhac42493 жыл бұрын
Anh cho em hỏi làm sao change đc format kiểu ngày của Sequelize v ạ. Em muốn lấy định dạng kiểu "DD/MM/YYYY h:mm:ss". Mong anh giải đáp ạ
@hoidanit3 жыл бұрын
lưu dưới database thì để dạng timestamp e nhé . chỉ phía client mình format lại theo định dạng mong muốn thôi. trên client thì mình dùng thư viện format (tên là moment) là đc cái yêu cầu của e, chứ ko ai lưu dưới db date là dạng text đâu e
@hoidanit3 жыл бұрын
yêu cầu của e, một ngày đẹp trời khách hàng yêu cầu hiển thị lên ngày dưới định dạng DD-MM-YYYY thì phải làm thế nào. cách đơn giản nhất là db lưu date ở dạng chuẩn (timestamp). còn client (react or html hay bất kỳ view engine nào) mình format từ timestamp -> sang format e mong muốn
@thuongnguyenthe14472 жыл бұрын
anh dạy em thấy khả năng hợp tính em rất cao ấy :))
@hoidanit2 жыл бұрын
đù. em là con gái hay sao mà kêu hợp tính anh :v
@uchung28903 жыл бұрын
Dạ anh ơi, anh có thể làm video về sự khác nhau giữa ORM vs ODM được hông ạ
@hoidanit3 жыл бұрын
cái đấy là behind the scenes rồi e. còn về bản chất của nó là giống nhau mà. thay vì viết raw quyery thì mình dùng orm/odm :v, còn việc dùng như thế nào thì tùy thuộc vào thư viện mình sử dụng nữa
@chiendd19083 жыл бұрын
Em chào anh, anh ơi cho em hỏi khi viết validate ở backend thì mình thường viết luôn trong model hay viết ở đâu vậy ạ? Em cảm ơn anh.
@hoidanit3 жыл бұрын
cái này tùy quan điểm mỗi người mà e. model, controller, service... e viết ở đâu thì do e quyết định nhé :v
@chiendd19083 жыл бұрын
@@hoidanit nếu làm dự án thực tế thì anh thường viết ở đâu vậy ạ ^^
@hoidanit3 жыл бұрын
1. middleware 2. controller check theo rule. pass qua middleware rồi check đầu hàm controller :v
@chiendd19083 жыл бұрын
@@hoidanit Em cảm ơn anh, Em sẽ tìm hiểu thêm về middleware ^^
@thanhdatfacade3 жыл бұрын
great!
@tanphatnguyen9047 Жыл бұрын
23:20 chọn giới tính gần mình nhất nha :)))
@hoidanit Жыл бұрын
kk
@tieucuongmedia9702 жыл бұрын
Cho e hỏi tại sao phải chuyển DATA từ Conntroller sang Service để handle mà ko handle trong Controller luôn vậy ạ? Cảm ơn a
@hoidanit2 жыл бұрын
mô hình MVC. trong thực tế, file controller ko ít code vậy đâu em :v
@thelasttruelove2 жыл бұрын
tại sao hàm hashUserPassword lại return 1 promise nhỉ, vì em thấy hàm đó chỉ nhận password vào và hash thôi chứ không thấy bất đồng bộ chỗ nào. với lại sao k xài const mà xài let a, tại e thấy không có gán lại cho cái hàm đó. Mong a giải đáp
@ducth42217 ай бұрын
việc nhận password vào và hash thật ra là cần bất đồng bộ, vì phải gọi cái thư viện bcrypt lên để hashpassword
@minhbienk22 жыл бұрын
anh ơi cho em hỏi tại sao lại dùng promise rồi xong bên trong lại dùng thêm async await nữa thế anh . Anh Hay ai biết tl giúp em với
@hoidanit2 жыл бұрын
code thôi em. trong khoá js nâng cao a có giải thích đấy em
@minhbienk22 жыл бұрын
@@hoidanit em thấy rồi . em cảm ơn anh ạ
@jackin84572 жыл бұрын
@@minhbienk2 cho mình hỏi bạn tìm thấy video # bao nhiêu vậy
@longhuynhthanh7486 Жыл бұрын
Làm theo còn sai nhiều. Không xem, tự code chắc mình bó tay luôn. Tương lại mịt mờ tăm tối, lối đi nào để thấy bình minh ? ha ha
@hoidanit Жыл бұрын
bạn code hết khoá rồi tính tiếp
@hungphanang5867 Жыл бұрын
Cho em hỏi cái là sao em chạy phần post request nó bị lỗi undefined với ạ
@hoidanit Жыл бұрын
check code đi e
@hungphanang5867 Жыл бұрын
@@hoidanit em chạy trên web vẫn được nma trong visual code nó không hiện
@hoidanit Жыл бұрын
vậy là do cấu hình vscode của bạn. chứ trong video mình đâu dùng vscode đâu
@KhanhNguyen-zx3wv3 жыл бұрын
anh cho em hỏi tại sao khi hash password thì anh lại dùng bất đồng bộ ạ . Em thấy cái đó đâu có call api hay gì đâu ạ . Mong anh trả lời em cảm ơn !
@hoidanit3 жыл бұрын
e dùng đồng bộ/ bất đồng bộ thư viện nó đều hỗ trợ hết. ở đây khi action tốn thời gian thì a dùng await cho chắc ăn thôi e
@_aoNgocTan2 жыл бұрын
Dạ anh ơi em làm đến cuối video giống y hệt anh rồi lúc nhấn nút Sign-in nó lại báo lỗi như này: "UnhandledPromiseRejectionWarning: Unhandled promise rejection. " Mong anh giải đáp giúp em với. Em cảm ơn anh ạ.
@hoidanit2 жыл бұрын
check code đi em :v
@chinhphan422 жыл бұрын
@@hoidanit em cũng bị vậy a ơi, check code đúng rồi
@hoidanit2 жыл бұрын
@@chinhphan42 10 bạn kêu code đúng rồi thì đến 9.5 bạn code sai mà em :v
@chinhphan422 жыл бұрын
@@hoidanit em thề code đúng, em dò hơn 5 lần :))
@linggmanucian4901 Жыл бұрын
@@chinhphan42 b fix duoc chua a?
@nghiatranvan1278 Жыл бұрын
anh cho em hỏi sao em console.log nó k in ra gì ở terminal vậy ạ
@hoidanit Жыл бұрын
do bạn ko đẹp trai đấy :v
@nghiatranvan1278 Жыл бұрын
@@hoidanit gì kì anh nhưng em k biết do cài sao mà code vẫn chạy bình thường nhưng em log thì lại k hiển thị ra được
@meu46883 жыл бұрын
a ơi sao cái số điện thoại e up lên DB nó thành "127" hết v a ?
@hoidanit3 жыл бұрын
code mấy lần theo video rồi e ?
@meu46883 жыл бұрын
@@hoidanit 3 lần rồi a ạ @@
@hoidanit3 жыл бұрын
@@meu4688 khi nào e làm đc 10 lần thì a giúp :v
@meu46883 жыл бұрын
@@hoidanit ơ kìa a :
@tantan-dh7kd2 жыл бұрын
anh ơi cho em hỏi là em bị lỗi Illegal arguments: undefined, string nên nó không hash được password thì có phải lỗi này là do thằng Bcryptjs hay không ạ em check code kỹ lắm rồi nhưng vẫn chưa tìm ra nguyên nhân
@hoidanit2 жыл бұрын
khoanh vùng lỗi đi em. a nghĩ ko có lỗi thư viện đâu. console.log xem.input truyền vào thư viện là gì
@lebahieu1201 Жыл бұрын
Mình cũng đang bị lỗi này, bạn fix được chưa hướng dẫn mình với ạ
@linggmanucian4901 Жыл бұрын
bạn fix được chưa ạ
@DungHoang-zq1ns Жыл бұрын
@@linggmanucian4901 b nhìn lại chữ Password đi chữ P thường và P hoa,mình fix dc rồi
@thangleinh6151 Жыл бұрын
@@DungHoang-zq1ns minh cung bi loi nay ban fix ntn
@vuongblog2312 жыл бұрын
function async luôn trả về 1 promise rồi sao bạn lại return new Promise làm gì
@hoidanit2 жыл бұрын
mình thích vậy đấy. còn bạn muốn biết tại sao thì có thể xem series dạy js nâng cao của mình
@nguyentai12153 жыл бұрын
sao copy cais boostrap from ve bi lech nhi
@baonguyenhoai73543 жыл бұрын
Bạn copy bên bs4 có link dưới description video á, mình tự lên kiếm mà nhầm qua bs3 nên bị lệch
@nguyentai12153 жыл бұрын
@@baonguyenhoai7354 bác co fb ko cung hoc cùng làm
@LongHoang-rv3zt10 ай бұрын
Em thêm đc user rồi nhưng các trường firstName, lastName, phoneNumber đều bị null T__T ai giúp em mới
@hoidanit10 ай бұрын
vậy check data trước khi bạn truyền vào hàm save/create xem bạn. máy ko có sai đâu
@hiep-65cs3angquang49 ай бұрын
b fix duoc chua a
@jonnyevans1115 Жыл бұрын
npm install --save bcrypt@5.0.1
@nguyenbuiminhhuy5016 Жыл бұрын
[nodemon] restarting due to changes... [nodemon] starting `babel-node src/server.js` events.js:353 throw er; // Unhandled 'error' event ^ Error: listen EADDRINUSE: address already in use :::8081 at Server.setupListenHandle [as _listen2] (net.js:1318:16) at listenInCluster (net.js:1366:12) at Server.listen (net.js:1452:7) at Function.listen (D:\Learn\Project\HTML\NodeJs ode_modules\express\lib\application.js:618:24) at Object. (D:\Learn\Project\HTML\NodeJs\src\/server.js:22:5) at Module._compile (internal/modules/cjs/loader.js:1068:30) at Module._compile (D:\Learn\Project\HTML\NodeJs ode_modules\pirates\lib\index.js:117:24) at Module._extensions..js (internal/modules/cjs/loader.js:1097:10) at Object.newLoader [as .js] (D:\Learn\Project\HTML\NodeJs ode_modules\pirates\lib\index.js:121:7) at Module.load (internal/modules/cjs/loader.js:933:32) Emitted 'error' event on Server instance at: at emitErrorNT (net.js:1345:8) at processTicksAndRejections (internal/process/task_queues.js:82:21) { code: 'EADDRINUSE', errno: -4091, syscall: 'listen', address: '::', port: 8081 } [nodemon] app crashed - waiting for file changes before starting... a ơi cho e hỏi tại sao nó add vào thông tin user vào bảng thành công rồi mà hén cứ hiện lỗi này. Ctrl + S lúc thì success lúc thì hiện lỗi mà đa số là lỗi thì phải làm sao sao a