THẢO LUẬN

thg 5 13, 2019 6:25 SA

Cảm ơn bác vì bài viết nhé !!

+1
thg 5 13, 2019 2:42 SA

thanks 😄

0

Bạn có thêm function slice như sau

    computed: {
        posts() {
            return this.$site.pages
                .filter(x => x.path.startsWith('/blog/') && !x.frontmatter.blog_index)
                .sort((a, b) => new Date(b.frontmatter.date) - new Date(a.frontmatter.date))
                .slice(0,10);
        }
    }
0
thg 5 13, 2019 2:07 SA

@Naem Sorry bạn vì giờ mình mới kịp check notification.

Bạn define như kia thì bị sai syntax rồi ý. Mình đoán có vẻ bạn đang muốn share source code hoặc một phần dữ liệu nào đó bạn đang để cùng thư mục source. Mình suggest bạn thay đổi như sau có lẽ sẽ hợp lý hơn trong trường hợp này.

  1. Nếu muốn share source code, dữ liệu này không bị ảnh hưởng từ phía người dùng. Bạn chỉ cần tạo một biến trỏ tới environment là đường dẫn tới folder source code, rồi dùng nó khi khai báo volume là được. VD:
version: '3'

services:
    application:
        container_name: project_application
        image: debian
        volumes:
            - ${BACKEND_PATH}:/var/www/project/backend
    workspace:
        container_name: project_workspace
        restart: always
        build:
            context: .
            dockerfile: ./docker/workspace/build/Dockerfile
        volumes:
            - ${BACKEND_PATH}:/var/www/project/backend
        tty: true
  1. Nếu dữ liệu bạn muốn share giữa các service là dạng data do người dùng tạo ra, upload lên. Thí dụ, ảnh hay tài liệu được người dùng upload lên, được bạn chỉ định lưu vào trong folder storage/app/uploads. Thay vì bạn đặt folder kia trong cùng folder chứa source code, rồi mount cả folder source code vào container. Thì bạn tạo một volume rồi mount volume vào folder storage/app/uploads trong service handle việc lưu ảnh. Ở các service khác, muốn dùng dữ liệu này cho mục đích khác thì bạn mount volume này vào thôi. VD:
volumes:
    upload-data:

services:
    application:
        container_name: project_application
        image: debian
        volumes:
            - backend:/var/www/project/backend
            - upload-data:/var/www/project/backend/storage/app/uploads
    workspace:
        container_name: project_workspace
        restart: always
        build:
            context: .
            dockerfile: ./docker/workspace/build/Dockerfile
        volumes:
            - upload-data:/data
        tty: true
+1

làm sao để có login với database cụ thể là sql sever bác

0

clap!

+1
thg 5 13, 2019 12:56 SA

Đẹp trai.

0

cho mình hỏi để lấy cái time trong created_at ra để hiển thị như diffForHumans thì viết kiểu j

0

thanks bạn. m sẽ cố gắng sẽ chia sẻ nhiều bài viết hay hơn nữa đến mọi người.

0
Avatar
đã bình luận cho bài viết
thg 5 12, 2019 10:42 SA

Great article. Thank you for sharing.

0

bài viết rất hay, cảm ơn tác giả

+1

Em muốn nó chỉ hiện 10 bài mới nhất thì làm ntn ạ

0

Cảm ơn tác giả, bài viết rất hữu ích, mình có một thắc mắc nhỏ như sau:

books = convert_csv_to_book_attributes.map do |attrs|
    Book.new(attrs)
end

books sẽ có giá trị tương đương tất cả dữ liệu cần import, vậy chúng sẽ được lưu trong memory trước khi lưu vào db? nếu như vậy với dữ liệu lớn với mỗi file csv lên tới hàng chục GB, thì có thể gây ra tràn vùng nhớ? cảm ơn tác giả .

0
Avatar
đã bình luận cho bài viết
thg 5 11, 2019 4:12 CH

勉強になりました!

0
Avatar
đã bình luận cho bài viết
thg 5 11, 2019 1:50 SA

có thể đưa dict vào trong như list được k anh !!

0

Ở mục 1, chạy trên IE Edge k thể hiển thị, requirement yêu cầu chạy được IE Edge là banh 😅

0
Avatar
đã bình luận cho bài viết
thg 5 10, 2019 8:48 SA

Đây là lấy ví dụ với 1 listener nếu có nhiều listener thì làm như cách của bạn sẽ phải include toàn bộ các class listener vào hàm processSubmitOrder()

+1

Hi,

Có vẻ như code ko chạy vào chỗ này để sendPhoto.

socket.on('sendPhoto', function(data){
  var guess = data.base64.match(/^data:image\/(png|jpeg);base64,/)[1];
  var ext = "";
  switch(guess) {
    case "png"  : ext = ".png"; break;
    case "jpeg" : ext = ".jpg"; break;
    default     : ext = ".bin"; break;
  }
  var savedFilename = "/upload/"+randomString(10)+ext;
  fs.writeFile(__dirname+"/public"+savedFilename, getBase64Image(data.base64), 'base64', function(err) {
    if (err !== null)
      console.log(err);
    else 
      io.to(roles.receiver).emit("receivePhoto", {
        path: savedFilename,
      });
      console.log("Send photo success!");
  });
});
0

thanks

0
thg 5 10, 2019 6:38 SA

@huukimit mình đọc docs thấy nó mount ntn để dùng ko biết có đúng ko =))

volumes:
   - type: bind
       name: backend
       source: ./backend
+1
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í