@maitrungduc1410
ok, cảm ơn b để mình thử lại với cái host kia và chuyển thành .env
Còn ý thứ 2 ý mình là mình đang hiểu cái image cấu hình trong docker-compose là mysql khác mới hoàn toàn. Sao nó hiểu được và kết nối với username, password khai báo b nhỉ, mình cứ khai báo thế rồi nó sẽ tự tạo cho mình ak, mình đang thắc mắc vậy
như lỗi in ra kia thì ở bên NodeJS bạn cấu hình host MySQL chưa chính xác, từ NodeJS kết nối sang MySQL thì bạn phải để host là tên của service chạy MySQL trong docker-compose.yml, ví dụ: db:3306, chứ ko phải 127.0.0.1:3306 nhé.
Việc dùng .env là tùy chọn nhé bạn. Chỉ là nếu để ở .env thì docker-compose có thể đọc được.
B cho mình hỏi chút, mình muốn cấu hình với mysql, mình chạy kết nối với mysql, ko dùng docker chạy ok rồi. Nhưng chạy với docker đang báo lỗi ConnectionRefusedError [SequelizeConnectionRefusedError]: connect ECONNREFUSED 127.0.0.1:3306 . Trong code mình ko dùng .env mà dùng một file js config để lấy username, host, password... Có cần phải cấu hình để kết nối với mysql dùng .env ko b nhỉ? Mình cũng muốn hỏi thêm là làm sao mysql trong docker-compose khi pull về có thể kết nối với username, password... đã khai báo b nhỉ, mình đang hiểu là khi pull image mysql thì nó chưa có username nào? Cảm ơn b!
Trả lời cho câu hỏi trong bài viết, đây là code khi extract widget Scaffold ra class riêng là MyScaffoldWidget :
import'package:flutter/material.dart';voidmain()=>runApp(MyApp());classMyAppextendsStatelessWidget{@overrideWidgetbuild(BuildContext context){returnMaterialApp(
home:MyHomePage(),);}}classMyHomePageextendsStatelessWidget{@overrideWidgetbuild(BuildContext context){returnMyScaffoldWidget();}}classMyScaffoldWidgetextendsStatelessWidget{@overrideWidgetbuild(BuildContext context){// context này của MyScaffoldWidget, mà MyScaffoldWidget là cha của Scaffold luôn rồireturnScaffold(
body:Center(
child:FlatButton(
child:Text('show snackbar'),
color:Colors.pink,
onPressed:(){final snackBar =SnackBar(content:Text('Lỗi không thể truy cập bài viết này vì thấy hay mà không vote'));Scaffold.of(context).showSnackBar(snackBar);},),),);}}
Nhìn vào code, bạn cũng thấy widget MyScaffoldWidget là cha của Scaffold luôn rồi. Và trong các widget cha của MyScaffoldWidget gồm MyHomePage, MyApp không có ai là Scaffold cả nên tất nhiên cách này sẽ bị bug.
Tương tự sử dụng Builder wrap Scaffold vẫn sẽ bị bug:
THẢO LUẬN
@HaiHaChan dạ không sao. Bài viết ổn rồi anh
@minhnv thì làm sao (tat)
@HaiHaChan anh kìa
Ủng hộ bác viết thêm bài (y)
@khacy_win Em thấy làm việc có tính nhất quán trong code là khá quan trọng, sau này maintain hay phát triển tiếp cũng dễ hơn.
Cảm ơn bạn
Bài viết hay quá anh.
bài viết rất chi tiết cảm ơn anh
@nguyennhudat
@maitrungduc1410 ok, cảm ơn b nhé
@nguyennhudat Đúng rồi bạn, mình chỉ cần khai báo biến môi trường. Khi container MySQL chạy lên nó sẽ đọc và tạo user tương ứng
@maitrungduc1410 ok, cảm ơn b để mình thử lại với cái host kia và chuyển thành .env
docker-compose.yml, ví dụ:db:3306, chứ ko phải127.0.0.1:3306nhé..envlà tùy chọn nhé bạn. Chỉ là nếu để ở.envthìdocker-composecó thể đọc được.B cho mình hỏi chút, mình muốn cấu hình với mysql, mình chạy kết nối với mysql, ko dùng docker chạy ok rồi. Nhưng chạy với docker đang báo lỗi
ConnectionRefusedError [SequelizeConnectionRefusedError]: connect ECONNREFUSED 127.0.0.1:3306. Trong code mình ko dùng .env mà dùng một file js config để lấy username, host, password... Có cần phải cấu hình để kết nối với mysql dùng .env ko b nhỉ? Mình cũng muốn hỏi thêm là làm sao mysql trong docker-compose khi pull về có thể kết nối với username, password... đã khai báo b nhỉ, mình đang hiểu là khi pull image mysql thì nó chưa có username nào? Cảm ơn b!Thanks
Nhìn cái bảng trông chết khiếp
Bài không biết góp nhặt chắp vá ở đâu, quá nhiều lỗi chính tả!
Trả lời cho câu hỏi trong bài viết, đây là code khi extract widget
Scaffoldra class riêng làMyScaffoldWidget:Nhìn vào code, bạn cũng thấy widget
MyScaffoldWidgetlà cha củaScaffoldluôn rồi. Và trong các widget cha củaMyScaffoldWidgetgồmMyHomePage,MyAppkhông có ai làScaffoldcả nên tất nhiên cách này sẽ bị bug.Tương tự sử dụng Builder wrap Scaffold vẫn sẽ bị bug:
Xin chúc mừng bạn nào có câu trả lời giống tui là: "KO FIX ĐƯỢC BUG NHÉ"
cảm ơn bạn ^^