Lỗi kết nối ssl mysql

file_get_contents() là cách ưu tiên để đọc nội dung của tệp thành chuỗi. Nó sẽ sử dụng các kỹ thuật lập bản đồ bộ nhớ nếu được hệ điều hành của bạn hỗ trợ để nâng cao hiệu suất

Ghi chú

Nếu bạn đang mở một URI có ký tự đặc biệt, chẳng hạn như dấu cách, bạn cần mã hóa URI bằng urlencode()

Thông số

mongoose.connect('mongodb://username:password@host:port/database?options...');
31

Tên file cần đọc

mongoose.connect('mongodb://username:password@host:port/database?options...');
320

Ghi chú

Hằng số

mongoose.connect('mongodb://username:password@host:port/database?options...');
321 có thể được sử dụng để kích hoạt tìm kiếm đường dẫn bao gồm. Điều này là không thể nếu kiểu gõ nghiêm ngặt được bật, vì
mongoose.connect('mongodb://username:password@host:port/database?options...');
321 là một kiểu int. Sử dụng
mongoose.connect('mongodb://username:password@host:port/database?options...');
323 để thay thế

mongoose.connect('mongodb://username:password@host:port/database?options...');
324

Tài nguyên ngữ cảnh hợp lệ được tạo bằng stream_context_create(). Nếu bạn không cần sử dụng ngữ cảnh tùy chỉnh, bạn có thể bỏ qua tham số này trước

mongoose.connect('mongodb://username:password@host:port/database?options...');
37

mongoose.connect('mongodb://username:password@host:port/database?options...');
326

Phần bù nơi bắt đầu đọc trên luồng ban đầu. Độ lệch âm được tính từ cuối luồng

Tìm kiếm (

mongoose.connect('mongodb://username:password@host:port/database?options...');
326) không được hỗ trợ với các tệp từ xa. Cố gắng tìm kiếm trên các tệp không cục bộ có thể hoạt động với độ lệch nhỏ, nhưng điều này không thể đoán trước được vì nó hoạt động trên luồng được đệm

mongoose.connect('mongodb://username:password@host:port/database?options...');
328

Độ dài tối đa của dữ liệu đọc. Mặc định là đọc cho đến khi kết thúc tệp. Lưu ý rằng tham số này được áp dụng cho luồng do bộ lọc xử lý

Giá trị trả về

Hàm trả về dữ liệu đã đọc hoặc

mongoose.connect('mongodb://username:password@host:port/database?options...');
41 khi lỗi

Cảnh báo

Hàm này có thể trả về giá trị Boolean

mongoose.connect('mongodb://username:password@host:port/database?options...');
41, nhưng cũng có thể trả về giá trị không phải Boolean có giá trị là
mongoose.connect('mongodb://username:password@host:port/database?options...');
41. Vui lòng đọc phần về Booleans để biết thêm thông tin. Sử dụng toán tử === để kiểm tra giá trị trả về của hàm này

Lỗi/Ngoại lệ

Lỗi cấp độ

mongoose.connect('mongodb://username:password@host:port/database?options...');
442 được tạo nếu không thể tìm thấy
mongoose.connect('mongodb://username:password@host:port/database?options...');
31,
mongoose.connect('mongodb://username:password@host:port/database?options...');
328 nhỏ hơn 0 hoặc nếu tìm kiếm
mongoose.connect('mongodb://username:password@host:port/database?options...');
326 được chỉ định trong luồng không thành công

Khi file_get_contents() được gọi trên một thư mục, lỗi cấp độ

mongoose.connect('mongodb://username:password@host:port/database?options...');
442 được tạo trên Windows và kể từ PHP 7. 4 trên các hệ điều hành khác

Nhật ký thay đổi

Phiên bảnMô tả8. 0. 0____1328 hiện không có giá trị. 7. 1. 0Hỗ trợ cho các
mongoose.connect('mongodb://username:password@host:port/database?options...');
326 âm đã được thêm vào

ví dụ

Ví dụ #1 Lấy và xuất mã nguồn của trang chủ của một trang web

mongoose.connect('mongodb://username:password@host:port/database?options...');
449

Ví dụ #2 Tìm kiếm trong include_path

mongoose.connect('mongodb://username:password@host:port/database?options...');
410

Ví dụ #3 Đọc một phần của tệp

mongoose.connect('mongodb://username:password@host:port/database?options...');
411

Ví dụ trên sẽ xuất ra một cái gì đó tương tự như

string(14) "lle Bjori Ro" 

Ví dụ #4 Sử dụng bối cảnh luồng

mongoose.connect('mongodb://username:password@host:port/database?options...');
412

mongoose.connect('mongodb://username:password@host:port/database?options...');
413

mongoose.connect('mongodb://username:password@host:port/database?options...');
414

ghi chú

Ghi chú. Hàm này an toàn nhị phân

Mẹo

Một URL có thể được sử dụng làm tên tệp với chức năng này nếu trình bao bọc fopen đã được bật. Xem fopen() để biết thêm chi tiết về cách chỉ định tên tệp. Xem Giao thức và Trình bao bọc được hỗ trợ để biết các liên kết đến thông tin về khả năng của các trình bao bọc khác nhau, ghi chú về cách sử dụng và thông tin về bất kỳ biến được xác định trước nào mà chúng có thể cung cấp

Cảnh báo

Khi sử dụng SSL, Microsoft IIS sẽ vi phạm giao thức bằng cách đóng kết nối mà không gửi chỉ báo

mongoose.connect('mongodb://username:password@host:port/database?options...');
415. PHP sẽ báo cáo điều này là "SSL. Fatal Protocol Error" khi bạn xem hết dữ liệu. Để giải quyết vấn đề này, giá trị của error_reporting phải được hạ xuống mức không bao gồm cảnh báo. PHP có thể phát hiện phần mềm máy chủ IIS có lỗi khi bạn mở luồng bằng trình bao bọc
mongoose.connect('mongodb://username:password@host:port/database?options...');
416 và sẽ chặn cảnh báo. Khi sử dụng fsockopen() để tạo ổ cắm
mongoose.connect('mongodb://username:password@host:port/database?options...');
417, nhà phát triển chịu trách nhiệm phát hiện và loại bỏ cảnh báo này

Đây là mức tối thiểu cần thiết để kết nối cơ sở dữ liệu

mongoose.connect('mongodb://username:password@host:port/database?options...');
4 chạy cục bộ trên cổng mặc định (27017). Nếu kết nối không thành công trên máy của bạn, hãy thử sử dụng
mongoose.connect('mongodb://username:password@host:port/database?options...');
5 thay vì
mongoose.connect('mongodb://username:password@host:port/database?options...');
6

Bạn cũng có thể chỉ định thêm một số tham số trong

mongoose.connect('mongodb://username:password@host:port/database?options...');
7

mongoose.connect('mongodb://username:password@host:port/database?options...');

Xem thông số chuỗi kết nối mongodb để biết thêm chi tiết

Mongoose cho phép bạn bắt đầu sử dụng các mô hình của mình ngay lập tức mà không cần đợi cầy mangut thiết lập kết nối với MongoDB

Đó là bởi vì chức năng mô hình bộ đệm cầy mangut gọi nội bộ. Bộ đệm này thuận tiện, nhưng cũng là một nguồn gây nhầm lẫn phổ biến. Mongoose sẽ không đưa ra bất kỳ lỗi nào theo mặc định nếu bạn sử dụng một mô hình mà không kết nối

Để tắt tính năng lưu vào bộ đệm, hãy tắt tùy chọn

mongoose.connect('mongodb://username:password@host:port/database?options...');
8 trên lược đồ của bạn. Nếu bạn đang bật
mongoose.connect('mongodb://username:password@host:port/database?options...');
8 và kết nối của bạn bị treo, hãy thử tắt
mongoose.connect('mongodb://username:password@host:port/database?options...');
8 để xem bạn có mở kết nối đúng cách không. Bạn cũng có thể tắt
mongoose.connect('mongodb://username:password@host:port/database?options...');
8 trên toàn cầu

mongoose.connect('mongodb://username:password@host:port/database?options...');
0

Lưu ý rằng bộ đệm cũng chịu trách nhiệm đợi cho đến khi Mongoose tạo bộ sưu tập nếu bạn sử dụng tùy chọn

mongoose.connect('mongodb://username:password@host:port/database?options...');
02. Nếu bạn tắt tính năng đệm, bạn cũng nên tắt tùy chọn
mongoose.connect('mongodb://username:password@host:port/database?options...');
02 và sử dụng
mongoose.connect('mongodb://username:password@host:port/database?options...');
04 để tạo các bộ sưu tập được giới hạn hoặc các bộ sưu tập có đối chiếu

Có hai loại lỗi có thể xảy ra với kết nối Mongoose

  • Lỗi khi kết nối ban đầu. Nếu kết nối ban đầu không thành công, Mongoose sẽ phát ra sự kiện 'lỗi' và lời hứa
    mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    3 trả về sẽ bị từ chối. Tuy nhiên, Mongoose sẽ không tự động cố gắng kết nối lại
  • Lỗi sau khi kết nối ban đầu được thiết lập. Mongoose sẽ cố gắng kết nối lại và nó sẽ phát ra sự kiện 'lỗi'

Để xử lý các lỗi kết nối ban đầu, bạn nên sử dụng

mongoose.connect('mongodb://username:password@host:port/database?options...');
06 hoặc
mongoose.connect('mongodb://username:password@host:port/database?options...');
07 với async/await

Để xử lý lỗi sau khi kết nối ban đầu được thiết lập, bạn nên lắng nghe các sự kiện lỗi trên kết nối. Tuy nhiên bạn vẫn cần xử lý lỗi kết nối ban đầu như hình trên

mongoose.connect('mongodb://username:password@host:port/database?options...');
7

Lưu ý rằng Mongoose không nhất thiết phải phát ra sự kiện 'lỗi' nếu nó mất kết nối với MongoDB. Bạn nên nghe sự kiện

mongoose.connect('mongodb://username:password@host:port/database?options...');
08 báo cáo khi Mongoose bị ngắt kết nối với MongoDB

Phương thức

mongoose.connect('mongodb://username:password@host:port/database?options...');
09 cũng chấp nhận một đối tượng
mongoose.connect('mongodb://username:password@host:port/database?options...');
70 sẽ được chuyển đến trình điều khiển MongoDB bên dưới

mongoose.connect('mongodb://username:password@host:port/database?options...');
1

Có thể tìm thấy danh sách đầy đủ các tùy chọn trên MongoDB Node. tài liệu trình điều khiển js cho

mongoose.connect('mongodb://username:password@host:port/database?options...');
71. Mongoose chuyển các tùy chọn cho trình điều khiển mà không sửa đổi, điều chỉnh một số ngoại lệ được giải thích bên dưới

  • mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    8 - Đây là một tùy chọn dành riêng cho cầy mangut (không được chuyển tới trình điều khiển MongoDB) vô hiệu hóa cơ chế đệm của Mongoose
  • mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    73/
    mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    74 - Tên người dùng và mật khẩu để xác thực. Các tùy chọn này dành riêng cho Mongoose, chúng tương đương với các tùy chọn
    mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    75 và
    mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    76 của trình điều khiển MongoDB
  • mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    77 - Theo mặc định, cầy mangut sẽ tự động xây dựng các chỉ mục được xác định trong lược đồ của bạn khi nó kết nối. Điều này rất tốt cho việc phát triển, nhưng không lý tưởng cho việc triển khai sản xuất lớn, bởi vì việc xây dựng chỉ mục có thể gây ra sự suy giảm hiệu suất. Nếu bạn đặt
    mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    77 thành false, cầy mangut sẽ không tự động tạo chỉ mục cho bất kỳ mô hình nào được liên kết với kết nối này
  • mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    79 - Chỉ định cơ sở dữ liệu nào sẽ kết nối và ghi đè bất kỳ cơ sở dữ liệu nào được chỉ định trong chuỗi kết nối. Điều này hữu ích nếu bạn không thể chỉ định cơ sở dữ liệu mặc định trong chuỗi kết nối như với một số kết nối cú pháp
    mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    10

Dưới đây là một số tùy chọn quan trọng để điều chỉnh Mongoose

  • mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    11 - Đặt thư viện lời hứa của trình điều khiển cơ bản
  • mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    12 - Số ổ cắm tối đa mà trình điều khiển MongoDB sẽ tiếp tục mở cho kết nối này. Theo mặc định,
    mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    12 là 100. Hãy nhớ rằng MongoDB chỉ cho phép một thao tác trên mỗi ổ cắm tại một thời điểm, vì vậy bạn có thể muốn tăng mức này nếu bạn thấy mình có một vài truy vấn chậm đang chặn các truy vấn nhanh hơn tiếp tục. Xem Slow Trains trong MongoDB và Node. js. Bạn có thể muốn giảm
    mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    12 nếu bạn sắp hết giới hạn kết nối
  • mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    15 - Số ổ cắm tối thiểu mà trình điều khiển MongoDB sẽ tiếp tục mở cho kết nối này. Trình điều khiển MongoDB có thể đóng các ổ cắm đã không hoạt động trong một thời gian. Bạn có thể muốn tăng
    mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    15 nếu bạn muốn ứng dụng của mình trải qua thời gian dài không hoạt động và muốn đảm bảo rằng các ổ cắm của bạn luôn mở để tránh các chuyến tàu chậm khi hoạt động bắt đầu
  • mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    17 - Trình điều khiển MongoDB sẽ đợi bao lâu trước khi tắt ổ cắm do không hoạt động sau khi kết nối ban đầu. Ổ cắm có thể không hoạt động do không có hoạt động hoặc hoạt động trong thời gian dài. Giá trị này được đặt thành
    mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    18 theo mặc định, bạn nên đặt giá trị này thành gấp 2-3 lần hoạt động chạy lâu nhất của mình nếu bạn muốn một số hoạt động cơ sở dữ liệu của mình chạy lâu hơn 20 giây. Tùy chọn này được chuyển đến Node. js
    mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    19 sau khi trình điều khiển MongoDB hoàn tất thành công
  • mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    10 - Kết nối bằng IPv4 hay IPv6. Tùy chọn này được chuyển đến Nút. Hàm
    mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    11 của js. Nếu bạn không chỉ định tùy chọn này, trình điều khiển MongoDB sẽ thử IPv6 trước và sau đó là IPv4 nếu IPv6 không thành công. Nếu cuộc gọi
    mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    12 của bạn mất nhiều thời gian, hãy thử
    mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    13
  • mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    14 - Cơ sở dữ liệu sử dụng khi xác thực với
    mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    73 và
    mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    74. Trong MongoDB, người dùng nằm trong phạm vi cơ sở dữ liệu. Nếu bạn gặp lỗi đăng nhập không mong muốn, bạn có thể cần đặt tùy chọn này
  • mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    17 - Trình điều khiển MongoDB sẽ cố gắng tìm một máy chủ để gửi bất kỳ thao tác cụ thể nào tới và tiếp tục thử lại trong khoảng thời gian
    mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    17 mili giây. Nếu không được đặt, trình điều khiển MongoDB sẽ mặc định sử dụng
    mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    18 (30 giây)
  • mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    10 - Trình điều khiển MongoDB gửi nhịp tim mỗi
    mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    10 để kiểm tra trạng thái của kết nối. Heartbeat phải tuân theo
    mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    17, vì vậy trình điều khiển MongoDB sẽ thử lại các nhịp tim không thành công trong tối đa 30 giây theo mặc định. Mongoose chỉ phát ra sự kiện
    mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    13 sau khi nhịp tim không thành công, vì vậy bạn có thể muốn giảm cài đặt này để giảm thời gian giữa khi máy chủ của bạn gặp sự cố và khi Mongoose phát ra
    mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    13. Chúng tôi khuyên bạn không nên đặt cài đặt này dưới 1000, quá nhiều nhịp tim có thể dẫn đến suy giảm hiệu suất

Tùy chọn

mongoose.connect('mongodb://username:password@host:port/database?options...');
17 cũng xử lý khoảng thời gian
mongoose.connect('mongodb://username:password@host:port/database?options...');
3 sẽ thử lại kết nối ban đầu trước khi xảy ra lỗi.
mongoose.connect('mongodb://username:password@host:port/database?options...');
3 sẽ thử lại trong 30 giây theo mặc định (mặc định là
mongoose.connect('mongodb://username:password@host:port/database?options...');
17) trước khi xảy ra lỗi. Để nhận phản hồi nhanh hơn về các hoạt động không thành công, bạn có thể giảm
mongoose.connect('mongodb://username:password@host:port/database?options...');
17 xuống 5000 như hình bên dưới

Thí dụ

Xem trang này để biết thêm thông tin về

mongoose.connect('mongodb://username:password@host:port/database?options...');
10 và
mongoose.connect('mongodb://username:password@host:port/database?options...');
17

Hàm

mongoose.connect('mongodb://username:password@host:port/database?options...');
12 cũng chấp nhận tham số gọi lại và trả về một lời hứa

Bạn cũng có thể chỉ định các tùy chọn trình điều khiển trong chuỗi kết nối của mình dưới dạng tham số trong phần chuỗi truy vấn của URI. Điều này chỉ áp dụng cho các tùy chọn được chuyển đến trình điều khiển MongoDB. Bạn không thể đặt các tùy chọn dành riêng cho Mongoose như

mongoose.connect('mongodb://username:password@host:port/database?options...');
8 trong chuỗi truy vấn

Nhược điểm của việc đặt các tùy chọn trong chuỗi truy vấn là các tùy chọn chuỗi truy vấn khó đọc hơn. Ưu điểm là bạn chỉ cần một tùy chọn cấu hình duy nhất, URI, thay vì các tùy chọn riêng biệt cho

mongoose.connect('mongodb://username:password@host:port/database?options...');
17,
mongoose.connect('mongodb://username:password@host:port/database?options...');
10, v.v. Phương pháp hay nhất là đặt các tùy chọn có khả năng khác nhau giữa quá trình phát triển và sản xuất, như
mongoose.connect('mongodb://username:password@host:port/database?options...');
16 hoặc
mongoose.connect('mongodb://username:password@host:port/database?options...');
17, trong chuỗi kết nối và các tùy chọn không đổi, như
mongoose.connect('mongodb://username:password@host:port/database?options...');
10 hoặc
mongoose.connect('mongodb://username:password@host:port/database?options...');
12, trong đối tượng tùy chọn

Tài liệu MongoDB có danh sách đầy đủ các tùy chọn chuỗi kết nối được hỗ trợ. Dưới đây là một số tùy chọn thường hữu ích để đặt trong chuỗi kết nối vì chúng được liên kết chặt chẽ với tên máy chủ và thông tin xác thực

  • mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    14 - Cơ sở dữ liệu sử dụng khi xác thực với
    mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    73 và
    mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    74. Trong MongoDB, người dùng nằm trong phạm vi cơ sở dữ liệu. Nếu bạn gặp lỗi đăng nhập không mong muốn, bạn có thể cần đặt tùy chọn này
  • mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    10 - Kết nối bằng IPv4 hay IPv6. Tùy chọn này được chuyển đến Nút. Hàm
    mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    11 của js. Nếu bạn không chỉ định tùy chọn này, trình điều khiển MongoDB sẽ thử IPv6 trước và sau đó là IPv4 nếu IPv6 không thành công. Nếu cuộc gọi
    mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    12 của bạn mất nhiều thời gian, hãy thử
    mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    13

Các kết nối kế thừa từ Node. js'

mongoose.connect('mongodb://username:password@host:port/database?options...');
87 và phát ra các sự kiện khi có điều gì đó xảy ra với kết nối, chẳng hạn như mất kết nối với máy chủ MongoDB. Dưới đây là danh sách các sự kiện mà một kết nối có thể phát ra

  • mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    88. Được phát ra khi Mongoose bắt đầu tạo kết nối ban đầu với máy chủ MongoDB
  • mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    89. Được phát ra khi Mongoose thực hiện thành công kết nối ban đầu với máy chủ MongoDB hoặc khi Mongoose kết nối lại sau khi mất kết nối. Có thể được phát ra nhiều lần nếu Mongoose mất kết nối
  • mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    10. Phát ra sau khi
    mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    11 và
    mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    12 được thực thi trên tất cả các kiểu kết nối này
  • mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    13. Ứng dụng của bạn có tên là
    mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    14 để ngắt kết nối khỏi MongoDB
  • mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    08. Xuất hiện khi Mongoose mất kết nối với máy chủ MongoDB. Sự kiện này có thể là do mã của bạn đã đóng kết nối một cách rõ ràng, máy chủ cơ sở dữ liệu gặp sự cố hoặc sự cố kết nối mạng
  • mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    16. Phát ra sau khi
    mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    14 đóng kết nối thành công. Nếu bạn gọi cho
    mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    18, bạn sẽ nhận được cả sự kiện 'ngắt kết nối' và sự kiện 'đóng'
  • mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    19. Được phát ra nếu Mongoose mất kết nối với MongoDB và đã kết nối lại thành công. Mongoose cố gắng tự động kết nối lại khi mất kết nối với cơ sở dữ liệu
  • mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    00. Được phát ra nếu xảy ra lỗi trên kết nối, chẳng hạn như
    mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    01 do dữ liệu không đúng định dạng hoặc tải trọng lớn hơn 16MB
  • mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    02. Phát ra khi bạn đang kết nối với một bộ bản sao và Mongoose đã kết nối thành công với bộ chính và ít nhất một bộ phụ
  • mongoose.connect('mongodb://username:password@host:port/database?options...');
    
    03. Phát ra khi bạn đang kết nối với một bộ bản sao và Mongoose đã kết nối thành công với tất cả các máy chủ được chỉ định trong chuỗi kết nối của bạn

Khi bạn đang kết nối với một máy chủ MongoDB duy nhất ("độc lập"), Mongoose sẽ phát ra 'ngắt kết nối' nếu nó bị ngắt kết nối khỏi máy chủ độc lập và 'đã kết nối' nếu nó kết nối thành công với máy chủ độc lập. Trong một bộ bản sao, Mongoose sẽ phát ra 'ngắt kết nối' nếu nó mất kết nối với bộ bản sao chính và 'đã kết nối' nếu nó quản lý để kết nối lại với bộ bản sao chính

Đối với các ứng dụng chạy lâu, thường nên bật

mongoose.connect('mongodb://username:password@host:port/database?options...');
04 với số mili giây. Không có nó, sau một khoảng thời gian, bạn có thể bắt đầu thấy lỗi
mongoose.connect('mongodb://username:password@host:port/database?options...');
05 mà dường như không có lý do. Nếu vậy, sau khi đọc phần này, bạn có thể quyết định kích hoạt
mongoose.connect('mongodb://username:password@host:port/database?options...');
04

mongoose.connect('mongodb://username:password@host:port/database?options...');
1

mongoose.connect('mongodb://username:password@host:port/database?options...');
07 là số mili giây phải đợi trước khi bắt đầu
mongoose.connect('mongodb://username:password@host:port/database?options...');
04 trên ổ cắm.
mongoose.connect('mongodb://username:password@host:port/database?options...');
04 là đúng theo mặc định kể từ cầy mangut 5. 2. 0

Để kết nối với một bộ bản sao, bạn chuyển một danh sách các máy chủ được phân tách bằng dấu phẩy để kết nối thay vì một máy chủ duy nhất

mongoose.connect('mongodb://username:password@host:port/database?options...');
1

Ví dụ

mongoose.connect('mongodb://username:password@host:port/database?options...');
1

Để kết nối với một bộ bản sao nút đơn, hãy chỉ định tùy chọn

mongoose.connect('mongodb://username:password@host:port/database?options...');
16

mongoose.connect('mongodb://username:password@host:port/database?options...');
8

Trình điều khiển MongoDB cơ bản sử dụng một quy trình được gọi là lựa chọn máy chủ để kết nối với MongoDB và gửi các hoạt động tới MongoDB. Nếu trình điều khiển MongoDB không thể tìm thấy máy chủ để gửi thao tác tới sau

mongoose.connect('mongodb://username:password@host:port/database?options...');
17, bạn sẽ gặp lỗi bên dưới

mongoose.connect('mongodb://username:password@host:port/database?options...');
1

Bạn có thể định cấu hình thời gian chờ bằng cách sử dụng tùy chọn

mongoose.connect('mongodb://username:password@host:port/database?options...');
17 thành
mongoose.connect('mongodb://username:password@host:port/database?options...');
3

Một

mongoose.connect('mongodb://username:password@host:port/database?options...');
14 có một thuộc tính
mongoose.connect('mongodb://username:password@host:port/database?options...');
15 giải thích lý do tại sao lựa chọn máy chủ đã hết thời gian chờ. Ví dụ: nếu bạn đang kết nối với một máy chủ độc lập bằng mật khẩu không chính xác, thì
mongoose.connect('mongodb://username:password@host:port/database?options...');
15 sẽ chứa lỗi "Xác thực không thành công"

Bộ bản sao MongoDB dựa vào khả năng tìm ra tên miền cho từng thành viên một cách đáng tin cậy. Trên Linux và OSX, máy chủ MongoDB sử dụng đầu ra của lệnh

mongoose.connect('mongodb://username:password@host:port/database?options...');
17 để tìm ra tên miền để báo cáo cho bộ bản sao. Điều này có thể gây ra lỗi khó hiểu nếu bạn đang kết nối với bộ bản sao MongoDB từ xa đang chạy trên một máy báo cáo
mongoose.connect('mongodb://username:password@host:port/database?options...');
17 của nó là
mongoose.connect('mongodb://username:password@host:port/database?options...');
6

Nếu bạn đang gặp lỗi tương tự, hãy kết nối với bộ bản sao bằng trình bao

mongoose.connect('mongodb://username:password@host:port/database?options...');
20 và chạy lệnh
mongoose.connect('mongodb://username:password@host:port/database?options...');
21 để kiểm tra tên máy chủ của từng thành viên bộ bản sao. Làm theo hướng dẫn của trang này để thay đổi tên máy chủ của thành viên bộ bản sao

Bạn cũng có thể kiểm tra thuộc tính

mongoose.connect('mongodb://username:password@host:port/database?options...');
22 của
mongoose.connect('mongodb://username:password@host:port/database?options...');
23 để xem trình điều khiển Nút MongoDB nghĩ trạng thái của bộ bản sao của bạn là gì. Thuộc tính
mongoose.connect('mongodb://username:password@host:port/database?options...');
22 chứa bản đồ mô tả máy chủ

Bạn cũng có thể kết nối với nhiều phiên bản mongos để có tính sẵn sàng cao trong một cụm phân đoạn. Bạn không cần phải vượt qua bất kỳ tùy chọn đặc biệt nào để kết nối với nhiều mongos trong mongoose 5. x

Cho đến nay chúng ta đã thấy cách kết nối với MongoDB bằng kết nối mặc định của Mongoose. Mongoose tạo kết nối mặc định khi bạn gọi

mongoose.connect('mongodb://username:password@host:port/database?options...');
3. Bạn có thể truy cập kết nối mặc định bằng cách sử dụng
mongoose.connect('mongodb://username:password@host:port/database?options...');
26

Bạn có thể cần nhiều kết nối với MongoDB vì một số lý do. Một lý do là nếu bạn có nhiều cơ sở dữ liệu hoặc nhiều cụm MongoDB. Một lý do khác là làm việc xung quanh các chuyến tàu chậm. Hàm

mongoose.connect('mongodb://username:password@host:port/database?options...');
27 nhận các đối số giống như hàm
mongoose.connect('mongodb://username:password@host:port/database?options...');
3 và trả về một kết nối mới

mongoose.connect('mongodb://username:password@host:port/database?options...');
0

Đối tượng kết nối này sau đó được sử dụng để tạo và truy xuất các mô hình. Các mô hình luôn nằm trong phạm vi một kết nối

mongoose.connect('mongodb://username:password@host:port/database?options...');
1

Nếu bạn sử dụng nhiều kết nối, bạn nên đảm bảo rằng bạn xuất lược đồ chứ không phải mô hình. Xuất một mô hình từ một tệp được gọi là mẫu mô hình xuất. Mẫu mô hình xuất bị hạn chế vì bạn chỉ có thể sử dụng một kết nối

Nếu bạn sử dụng mẫu lược đồ xuất, bạn vẫn cần tạo mô hình ở đâu đó. Có hai mẫu phổ biến. Đầu tiên là xuất một kết nối và đăng ký các mô hình trên kết nối trong tệp

Một cách khác là đăng ký các kết nối với một bộ tiêm phụ thuộc hoặc mẫu đảo ngược kiểm soát (IOC) khác

mongoose.connect('mongodb://username:password@host:port/database?options...');
2

Mỗi

mongoose.connect('mongodb://username:password@host:port/database?options...');
29, cho dù được tạo bằng
mongoose.connect('mongodb://username:password@host:port/database?options...');
30 hay
mongoose.connect('mongodb://username:password@host:port/database?options...');
31 đều được hỗ trợ bởi nhóm kết nối có thể định cấu hình nội bộ, mặc định có kích thước tối đa là 100. Điều chỉnh kích thước nhóm bằng các tùy chọn kết nối của bạn