Hướng dẫn save to database javascript - lưu vào cơ sở dữ liệu javascript

Bất cứ khi nào chúng tôi đang sử dụng JavaScript để lập trình, một trong những điều đầu tiên mà chúng tôi muốn đạt được là một loại "kiên trì". Một cách mà chúng ta có thể sử dụng để lưu thông tin mà chúng ta có và truy cập vào sau. Chúng ta hãy làm việc về cách thực hiện việc này, vì có một số cách chúng ta có thể sử dụng để lưu trữ thông tin trong hệ thống của chúng ta. Để thực hiện việc này, chúng tôi sẽ sử dụng & nbsp; node.js, vì vậy nếu bạn chưa cài đặt nút trong hệ thống của mình, hãy sẵn sàng tải xuống gói / cài đặt mới nhất của họ từ trang web chính thức của họ trước khi bạn bắt đầu mã hóa.node.js​ , so if you haven't yet installed node in your system, be ready to download their latest package / install file from their official website before you start coding.

Nội dung chính Show

  • ExpresstoworkasawebendpointXPRESS TO WORK AS A WEB ENDPOINT
  • (OPTIONAL)USINGNODEMONTOREFRESHNODEEVERYTIMEOPTIONAL) USING NODEMON TO REFRESH NODE EVERY TIME
  • UsingsQlTostoredataFromajsObjectsing SQL to STORE DATA FROM A JS OBJECT
  • Cập nhật dữ liệuPDATING data
  • Waitaminute,somethingiswrong...ait a minute, something is wrong...
  • AndtheansweriswrongND THE ANSWER IS WRONG
  • Sử dụng MongoDB
  • Nhận thông tin kết nối cụm của bạn
  • Tạo raThewebservicereating the webservice
  • Làm thế nào để kiểm traow to test
  • Our reader's favorite picksur reader's favorite picks
  • Subscribe to our newsletterubscribe to our newsletter
  • Làm thế nào có thể thêm dữ liệu trong cơ sở dữ liệu bằng JavaScript?
  • Tôi có thể sử dụng JavaScript để truy cập cơ sở dữ liệu không?

Lưu ý cho các nhà phát triển:

Phạm vi của hướng dẫn này sẽ là cố gắng sử dụng các mô hình hướng đối tượng bất cứ khi nào có thể. Hướng dẫn này sẽ không tập trung vào việc sử dụng & nbsp; React & nbsp; hoặc & nbsp; angular & nbsp; to & nbsp; Gọi bất kỳ điểm cuối đầy đủ dữ liệu. Nó được định hướng nhiều hơn bằng cách sử dụng JavaScript trong máy chủ back-end của bạn.react or angular to  call any endpoints full of data. It is more rather oriented into using javascript in your back-end server.

Tôi muốn rất rõ ràng về điều này. & NBSP; Nếu bạn từng sử dụng hướng dẫn này trong một ứng dụng khách hàng đầu, bạn sẽ làm sai. Chúng tôi sẽ đề cập đến cách sử dụng chính xác hướng dẫn này để tương tác với khung phía trước của bạn. Bây giờ, hãy giữ lấy ở đó, tôi không nói rằng việc truy cập cơ sở dữ liệu từ mặt trước của bạn luôn là một ý tưởng tồi. Có nhiều cách bạn cũng có thể làm điều đó và Google cung cấp các dịch vụ phần mềm tốt như Firebase cho phép bạn tương tác một cách an toàn với dữ liệu và các máy khách đã xác định và đăng ký trong mạng của bạn .. Điều duy nhất tôi muốn rõ ràng là & NBSP; Không một trong số họ.If you ever use this tutorial in a front-end client, you will be doing it wrong. This tutorial is only set and thought for back-end programming in Javascript. We will cover how to correctly use this tutorial to interact with your front-end framework. Now, hold on there, I'm not saying that accessing a database from your front-end is always a bad idea. There are many ways that you can do that too and google offers good software services like firebase that allows you to safely interact with data and identified and registered clients in your network.. The only thing I want to be clear about is that this is not one of them.

Chúng tôi sẽ sử dụng Express JS và Node JS để tạo một điểm cuối web nhỏ mà chúng tôi sẽ làm việc. Tôi luôn thích lập trình như thế này, vì nó giúp tôi có một cái nhìn rõ ràng rằng vào cuối ngày, chúng tôi đang tạo ra một điểm cuối mô -đun và độc lập.

ExpresstoworkasawebendpointXPRESS TO WORK AS A WEB ENDPOINT

Chúng tôi sẽ sử dụng Express trong dự án nhỏ của chúng tôi. Điều hướng đến bất kỳ thư mục nào bạn sẽ làm việc và nhập NPM init & NBSP; , sau khi trả lời tất cả các câu hỏi, thực thi & nbsp; npm install Express. Đừng sao chép tệp này, chúng tôi sẽ sử dụng một tệp khác trong hướng dẫn.npm init  , after answering all of the questions, execute npm install express. Don't copy this file just yet,​ we will be using another one further in the tutorial.

Phần này của mã sẽ chịu trách nhiệm lắng nghe các kiến ​​nghị của khách hàng. & NBSP; Ngay bây giờ chúng tôi chỉ đơn giản là sử dụng Express.js & nbsp; để xử lý các yêu cầu và nó không & nbsp; đã hoàn thành (chờ trước khi bạn sao chép). Nếu bạn chưa bao giờ sử dụng Express trước đây, & nbsp; Express là một khung công tác JavaScript nhỏ tạo ra một máy chủ web nhỏ thì việc sử dụng (dòng 2 & 3 để tải nó) rất đơn giản, sẽ rất đơn giản. ; Tôi yêu nó, tôi thấy nó là một trong những khung hình tốt nhất mà tôi từng sử dụng trong JavaScript vì nó đơn giản, dễ sử dụng và rất trực quan. Nó rất hữu ích cho các dự án nhỏ mà bạn không cần phải vượt qua hệ thống định tuyến hoặc bất kỳ mô -đun định tuyến nâng cao nào ...not finished (wait before you copy) . If you've never used express before, express is a small javascript framework that creates a small web server it's very simple to use (lines 2 & 3 to load it) from a simple object that takes care of pretty much everything.  I love it, i find it one of the best frameworks I've ever used in javascript because it's simple, its easy to use and very intuitive. It is very helpful for small projects where you don't need to overengineer a routing system or any advanced routing modules...

Express cho phép chúng tôi tạo các điểm cuối mà chúng tôi sẽ truy cập qua http: // localserver (hoặc ip hoặc máy hoặc bất cứ điều gì bạn có)/tên tuyến đường. Chúng tôi sẽ sử dụng tệp này trong một phút. ​Now copy the following into driver.js. We will be using this file in a minute.

Đến bây giờ nếu bạn không nhìn thấy bức tranh lớn hơn về cách thức hoạt động của nó, có thể đi dạo, thư giãn và thư giãn. Đây về cơ bản là bộ xương chúng tôi sẽ sử dụng để làm việc. Chúng tôi sẽ làm việc trong mỗi một trong các chức năng một cách độc lập.

Về đối tượng kết nối

Trong ví dụ này. Chúng tôi cho rằng máy chủ sẽ liên tục nhận trực tuyến, vì vậy chúng tôi tạo một đối tượng con trong hàm tạo của lớp trình điều khiển, sau đó sử dụng lại nó, thay vì tạo một đối tượng Conn mỗi lần. Nếu kết nối bị hỏng tại một số điểm, thì chúng ta sẽ cần thiết lập lại kết nối, nhưng đây sẽ chỉ là một thử nghiệm để chúng ta không đề cập đến điều đó trong hướng dẫn này.

(OPTIONAL)USINGNODEMONTOREFRESHNODEEVERYTIMEOPTIONAL) USING NODEMON TO REFRESH NODE EVERY TIME

Chạy Node App.js bằng tay mỗi khi chúng tôi thực hiện thay đổi mã của chúng tôi sẽ có một chút tẻ nhạt và khó chịu, vì vậy hãy để tự động hóa điều đó. Phần này không cần thiết để làm theo cùng với phần còn lại của hướng dẫn, nhưng chắc chắn sẽ giúp bạn tiết kiệm một số tổ hợp phím.

Hãy để bắt đầu bằng cách cài đặt gói Nodemon. Đây là một công cụ tự động khởi động lại ứng dụng nút khi phát hiện thấy tệp trong thư mục:

npm & nbsp; install--save-dev gật đầu

Bây giờ đang chạy & nbsp; ________ 1 & nbsp; và thực hiện thay đổi thành & nbsp; ________ 2. Nodemon nên phát hiện sự thay đổi và khởi động lại ứng dụng../node_modules/.bin/nodemon driver.js and make a change to driver.js. nodemon should detect the change and restart the app.

Hướng dẫn save to database javascript - lưu vào cơ sở dữ liệu javascript

UsingsQlTostoredataFromajsObjectsing SQL to STORE DATA FROM A JS OBJECT

Là một lập trình viên, bạn sẽ bị cám dỗ sử dụng MySQL và/hoặc các hệ thống SQL khác để lưu dữ liệu đúng. Những gì MySQL làm là khá nhiều đầu nối mà bạn có thể sử dụng để thực hiện các hướng dẫn SQL.

Trước tiên, nếu chúng ta sẽ sử dụng MySQL, chúng ta sẽ cần tải xuống và cài đặt thư viện trong nút của chúng ta. Trong thiết bị đầu cuối của chúng tôi, chỉ cần điều hướng đến bất cứ nơi nào bạn sẽ hoạt động và & nbsp; thực hiện lệnh "NPM Cài đặt MySQL", sẽ cài đặt MySQL trong thư mục dự án của bạn.npm install mysql" , which will install mysql in your project folder.

Có nhiều cách mà bạn có thể sử dụng để thiết lập môi trường SQL để kiểm tra và làm việc. Nếu bạn chưa cài đặt SQL Server hoặc điểm cuối để làm việc với, & nbsp; Kiểm tra hướng dẫn của chúng tôi về cách nhận PHP, SQL và Apache chạy trong máy tính của bạn với Docker.

Đừng cảm thấy tốt hay xấu. SQL là một ngôn ngữ đánh dấu rất phổ biến và phổ biến cho phép xây dựng nhiều thứ vì vậy đây là một thiết lập bạn thực sự có thể sử dụng tại một số điểm đang được phát triển. Hãy tạo hai tệp. index.js sẽ chăm sóc dịch vụ điểm cuối và cách xử lý & nbsp; cuộc gọi của khách hàng. Mặt khác, Driver.js sẽ hoạt động như một loại "phần mềm trung gian" giữa điểm cuối và cơ sở dữ liệu của chúng tôi. Sự khác biệt nhỏ này sẽ giúp chúng tôi giữ mã gọn gàng và tổ chức.

Hãy đi và kiểm tra kết nối đầu tiên của chúng tôi, hãy kiểm tra xem nó trông như thế nào.

Một trong những lý do tại sao tôi không thích sử dụng mysql là & nbsp; trộn lẫn 'và "ở mọi nơi trong dòng 3. & nbsp; nó cũng mở ra để khai thác và hack tiêm SQL. & NBSP;

Cũng có tính đến việc chúng tôi trả về kết quả dựa trên phản hồi của cơ sở dữ liệu SQL là gì. Nếu có một sự thay đổi trong cơ sở dữ liệu, chúng tôi sẽ không được thông báo hoặc nói, lỗi sẽ vượt qua. dọc theo cấp độ tiếp theo (ví dụ như frontend). & nbsp;

Dữ liệu được trả về từ cơ sở dữ liệu MySQL có thể được phân tích cú pháp bằng cách lặp đơn giản qua & nbsp; ________ 3 & nbsp; object. & Nbsp;

Liên quan đến các chức năng Lambda

Nếu bạn không quen thuộc với các hàm Lambda thì đây là một mẹo nhỏ. Bạn có thể gọi nó là hàng hoặc bất kỳ cách nào bạn muốn, miễn là chúng trùng khớp trước và sau =>. Đối tượng thực sự giải quyết thành {hàng} là mục từ mảng đang đệ quy trong (foreach) và bạn có thể gọi nó theo cách bạn muốn.

Cập nhật dữ liệuPDATING data

Nếu bạn chưa sử dụng Nodemon, EXECUTE & NBSP; Node Driver.js & NBSP; và kiểm tra kết quả. Bạn có thể fiddle với nó cho đến khi bạn hiểu mã đang làm gì. Tôi muốn bạn kiểm tra một điều nhỏ mà tôi đã làm cho bạn để tóm tắt lại. Nếu bạn kiểm tra tệp console.log. Tôi đang in ra kết quả mà tôi đã chèn & nbsp; chứ không phải & nbsp; kết quả mà hệ thống đã cho tôi. Tôi đang sử dụng đối tượng "máy khách" để chăm sóc in kết quả thay vì thông tin từ đối tượng kết quả được trả về .... tại sao bạn nghĩ rằng tôi đang làm điều này? & NBSP; Đây là điều tốt hay xấu? Bạn tìm thấy những ưu điểm và nhược điểm nào trong thiết kế này? & NBSP; Đặt ý kiến ​​của bạn trong các ý kiến ​​ở cuối bài viết!node driver.js and check the results. You can fiddle with it until you understand what the code is doing. I want you to check one small thing i've done for you to recap. If you check the console.log file. I am printing out the results that I inserted rather than the results that the system gave to me. I'm using the "client" object to take care of printing the results rather than the information from the results object returned.... Why do you think I'm doing this?  Is this a good or a bad thing? What possible advantages and disadvantages do you find in this design?  Place your opinions in the comments at the end of the article!

Điều tiếp theo chúng tôi sẽ làm là cập nhật dữ liệu và thông tin. Nếu bạn kiểm tra truy vấn này, bạn có thể dễ dàng kiểm tra xem có bao nhiêu hàng đã bị ảnh hưởng bởi truy vấn cập nhật.

Hãy hướng tới mã và tạo một chức năng mới để cập nhật máy khách trong tập lệnh trình điều khiển của chúng tôi.

Chúng tôi cũng sẽ cập nhật các dòng cuối cùng của mã của chúng tôi để tập lệnh của chúng tôi sẽ phản ánh tất cả những thay đổi này và chúng tôi có thể giải thích những gì đang diễn ra

Waitaminute,somethingiswrong...ait a minute, something is wrong...

Kiểm tra lại. Khi bạn cập nhật tên máy khách, kết quả làm thay đổi đối tượng máy khách và nó thay đổi tất cả các kết quả. & NBSP; Làm thế nào điều này có thể xảy ra? & NBSP; Tại sao cuộc gọi đầu tiên cũng bị thay đổi bởi thay đổi tên?How can this be happening? Why is the first call also being changed by the name change?How can this be happening? Why is the first call also being changed by the name change?

Lỗi này xuất phát từ thực tế là cách thức hoạt động của JavaScript và cách JavaScript tương tác với các biến trong chính tập lệnh này. & NBSP; Và hiểu những gì đang diễn ra sẽ có nghĩa là bạn biết JavaScript hoạt động như thế nào và tại sao nó thất bại.

& nbsp; Mẹo: Khái niệm chính đằng sau JavaScript là bản thân mã có nghĩa là không đồng bộ ... Hãy cố gắng tìm hiểu lý do tại sao điều này xảy ra trước khi đọc câu trả lời.TIP: the main concept behind javascript is that the code itself is meant to be asynchronous... Try to find out why this happens before reading the answer.TIP: the main concept behind javascript is that the code itself is meant to be asynchronous... Try to find out why this happens before reading the answer.

AndtheansweriswrongND THE ANSWER IS WRONG

Chúng tôi đã giả định rằng mã trong JavaScript thường thực hiện theo cách đồng bộ bằng chương trình khi sự thật là không. JavaScript nội bộ hoạt động với những lời hứa với các chức năng của họ. Khi bạn gọi & NBSP; StoreClient & NBSP; bộ điều khiển, bạn sẽ không thực thi mã cho đến khi truy vấn kết thúc. Điều này có nghĩa là mã JavaScript vẫn phải tìm nạp thông tin từ máy chủ cơ sở dữ liệu và cho đến khi nó đạt được nó, thay vì tạm dừng mã, nó sẽ trả về một "lời hứa", có nghĩa là khi mã JavaScript đã kết nối thành công với trình điều khiển MySQL , đã gửi truy vấn, nhận được, đã kiểm tra bất kỳ lỗi nào và trả lại phản hồi, mã sẽ kích hoạt chức năng mà bạn để lại (trong trường hợp này là một trong truy vấn). Điều này có liên quan đến & nbsp; callback_fifts & nbsp; và đó là cách rất cơ bản về cách thức hoạt động của JavaScript.storeclient controller, you are not executing the code until the query is finished. This means that the javascript code still has to fetch for the information from the database server and until it has reached it, rather than halting the code, it returns a "promise", meaning that when the javascript code has connected succesfully with the mysql driver, sent the query, received it, checked for any errors and returned the response, the code will trigger the function that you leave behind (in this case, the one inside the query). This has to do with callback_functions and it's the very basic of how javascript works.storeclient controller, you are not executing the code until the query is finished. This means that the javascript code still has to fetch for the information from the database server and until it has reached it, rather than halting the code, it returns a "promise", meaning that when the javascript code has connected succesfully with the mysql driver, sent the query, received it, checked for any errors and returned the response, the code will trigger the function that you leave behind (in this case, the one inside the query). This has to do with callback_functions and it's the very basic of how javascript works.

Mặc dù nó có thể không giống như vậy, câu lệnh client.name = "paul" & nbsp; thực sự xảy ra trước khi cơ sở dữ liệu bị thay đổi và vì chúng tôi không kiểm soát đầu ra trong bảng điều khiển của chúng tôi, bảng điều khiển được in ra tên mà Chúng tôi đã thay đổi.client.name = "Paul" is indeed happening before the database is altered, and since we are not controlling the output in our console.log, the console is printing out the name that we already altered.client.name = "Paul" is indeed happening before the database is altered, and since we are not controlling the output in our console.log, the console is printing out the name that we already altered.

Chúng tôi không có bản đồ chính xác giữa các biến mặt trước của chúng tôi và các trường hợp của chúng trong phần cuối của chúng tôi. & NBSP; Đây là một sai lầm của tân binh rất phổ biến và tôi đã thấy nhiều lần lặp lại trong hồ sơ cơ sở.This is a very common rookie mistake and one that I've seen many times repeated in junior profiles.This is a very common rookie mistake and one that I've seen many times repeated in junior profiles.

Nếu chúng ta sử dụng một đối tượng để gói gọn tất cả các hành động bạn có thể làm với nó, thì chúng ta phải luôn luôn đồng bộ hóa thông tin. Hãy kiểm tra triển khai này.

Bây giờ, một vài điều đã thay đổi ở đây. Trước hết, chúng tôi đã ủy thác việc tạo vật phẩm cho & nbsp; client & nbsp; chính và hiện không có trình điều khiển ... hiện tại & nbsp; client & nbsp; là người lái xe. Nó hoạt động như một trình điều khiển cho chính nó và trích xuất và chăm sóc dữ liệu của chính nó. Nếu chúng ta tạo một đối tượng dữ liệu bằng cách sử dụng biểu diễn này, thì chúng ta phải tính đến toàn bộ sự xem xét hướng đối tượng này.Client itself, and there is no driver now... the Client is the driver now. It acts as a driver for itself and extracts and takes care of it's own data. If we create a data object using this representation, then we must take into account this whole object oriented consideration.Client itself, and there is no driver now... the Client is the driver now. It acts as a driver for itself and extracts and takes care of it's own data. If we create a data object using this representation, then we must take into account this whole object oriented consideration.

Nhược điểm của tình huống này là chúng tôi đang tạo nhiều phiên bản kết nối trên mỗi đối tượng máy khách, chúng phải được đóng riêng.

Hãy chú ý đến thực tế là trong thiết kế này, tôi phải & nbsp; thêm & nbsp; một khách hàng trước & nbsp; cam kết. & Nbsp; Đây chỉ là một ví dụ để bạn có một ví dụ về sự can thiệp của cơ sở dữ liệu. Trong các tình huống bình thường, cam kết và thêm nên là điều tương tự. Tuy nhiên, trong trường hợp này, những gì tôi muốn hiển thị cho bạn là các hoạt động crud khác nhau (tạo, đọc, cập nhật, xóa) bạn có thể làm. & Nbsp;add a client before committing. This is just an example so you have an example of a database interation. In normal situations, commiting and adding should be the same thing. In this case however, what I want to show you is the different CRUD operations (create, read, update, delete) you can do. add a client before committing. This is just an example so you have an example of a database interation. In normal situations, commiting and adding should be the same thing. In this case however, what I want to show you is the different CRUD operations (create, read, update, delete) you can do. 

Ngoài ra, hãy kiểm tra thời gian chờ đặt mà chúng tôi đã sử dụng để xây dựng giải pháp này. Đây chỉ là một điều tạm thời để loại bỏ vấn đề mã đồng bộ và không đồng bộ. Trên cơ sở hàng ngày, những hành động này sẽ được thực hiện riêng biệt để chúng chỉ ở đây cho mục đích thử nghiệm (nếu chúng ta không chờ đợi, thì đối tượng không "làm mới" đúng cách, vì vậy chúng ta phải chờ nó).

Ý tưởng đằng sau hệ thống này là bao gồm MySQL bên trong một công trình định hướng đối tượng trong khung JavaScript. & NBSP; Thực thi mã thông qua node driver.js & nbsp; & nbsp; và fiddle với đồng bộ hóa. Bạn có thể thấy những gì xảy ra không? & NBSP;node driver.js  and fiddle with the syncing. Can you see what happens? node driver.js  and fiddle with the syncing. Can you see what happens? 

Bài tập về nhà cho các bạn nếu bạn muốn ... Bạn có thể tạo phương thức & nbsp; xóa không?delete​ method ?delete​ method ?

Sử dụng MongoDB

MongoDB là một cơ sở dữ liệu định hướng đối tượng khác mà chúng ta có thể sử dụng trong JavaScript. Nếu bạn có ít hoặc không có kinh nghiệm với MongoDB thì tôi khuyên bạn nên Google một chút về cách MongoDB hoạt động trước khi quay lại đây. & NBSP;

Một điều mà tôi thích ngày càng nhiều hơn mỗi ngày. Để sử dụng MongoDB, chúng tôi có hai khả năng khác nhau:

Nếu chúng tôi có thiết lập Docker, chúng tôi có thể thiết lập hình ảnh Docker Mongo bằng cách sử dụng lệnh:

docker run --name some-mongo -d mongo:latest

Đây là một lệnh nhỏ sẽ kéo một hình ảnh Mongo và khởi động nó trong máy Docker của chúng tôi mà chúng tôi có thể truy cập. Coi chừng, & nbsp; dữ liệu chúng tôi sử dụng trong hình ảnh này sẽ không tồn tại.the data we use in this image will not be persistent.the data we use in this image will not be persistent.


Bạn cũng có thể cài đặt MongoDB trong máy của bạn từ trang web tải xuống của họ và khởi động máy chủ cục bộ của riêng bạn.

Là tài nguyên cuối cùng, bạn có thể sử dụng cơ sở dữ liệu miễn phí mà Mongo cung cấp cho người dùng với dịch vụ Mongo Cloud Atlas của họ (đây là những gì tôi sẽ làm cho hướng dẫn này). Tôi khuyên bạn nên kiểm tra điều này để bạn quen với các dịch vụ cơ sở dữ liệu phần mềm web và ưu của họ. Để bắt đầu, chỉ cần đăng nhập hoặc đăng ký trang web của họ và tạo cụm khởi động mới

Thực hiện theo hướng dẫn của họ trong cấu hình với những gì sẽ phù hợp với nhu cầu của bạn. Về người dùng, chúng tôi cũng sẽ cần tạo người dùng có quyền truy cập vào cụm này

Cuối cùng chúng tôi sẽ cần thiết lập các tham số bảo mật, nhấp vào "Kết nối" trong bảng điều khiển của bạn và làm theo hướng dẫn trên màn hình. Hãy chắc chắn rằng bạn sẽ đưa vào IP của bạn để bạn có quyền truy cập vào cụm của mình. Hãy nhớ rằng thông thường ISP của bạn thay đổi IP, vì vậy bạn sẽ phải thay đổi điều này. Bạn có thể giữ điều này nếu bạn muốn và nếu bạn chỉ muốn kiểm tra và học hỏi.

Khi bạn đạt được & nbsp; kết nối & nbsp; tab, chỉ cần đóng nó đi (chúng tôi đã kết nối với cụm thông qua JavaScript của chúng tôi). & NBSP; Bạn cũng có thể kết nối với nó bằng Compass Mongo. Nếu bạn chưa gặp Mongo Compass, Mongo Compass cho phép bạn kết nối và khám phá cơ sở dữ liệu Mongo. Đó là một công cụ rất thoải mái mà tôi khuyên bạn nên xem nếu bạn chưa làm như vậy trước đây.connect tab, simply close it off (we are already connecting to the cluster via our own javascript).  You can also connect to it using Mongo Compass. If you haven't met Mongo Compass yet, Mongo Compass allows you to connect and explore mongo databases. It is a very comfortable tool that I recommend you to take a look if you haven't done so before yet.connect tab, simply close it off (we are already connecting to the cluster via our own javascript).  You can also connect to it using Mongo Compass. If you haven't met Mongo Compass yet, Mongo Compass allows you to connect and explore mongo databases. It is a very comfortable tool that I recommend you to take a look if you haven't done so before yet.

Tiếp theo, cài đặt Thư viện MongoDB bởi & nbsp; & nbsp; Running & nbsp; lệnh sau.

npm install mongodb --save

Điều này sẽ cài đặt các mô -đun Mongo vào máy của bạn.

Nhận thông tin kết nối cụm của bạn

Bước cuối cùng là chuẩn bị cụm của bạn để kết nối. Trong & nbsp; Atlas, điều hướng đến cụm của bạn và nhấp vào & nbsp; kết nối.CONNECT.CONNECT.

Trình hướng dẫn kết nối cụm sẽ xuất hiện và nhắc bạn vào danh sách trắng địa chỉ IP hiện tại của bạn và tạo người dùng MongoDB nếu bạn đã thực hiện như vậy. Hãy chắc chắn lưu ý tên người dùng và mật khẩu bạn sử dụng cho người dùng MongoDB mới vì bạn sẽ cần chúng trong bước sau.

Tiếp theo, trình hướng dẫn sẽ nhắc bạn chọn phương thức kết nối. Chọn & NBSP; Kết nối ứng dụng của bạn. Khi trình hướng dẫn nhắc bạn chọn phiên bản trình điều khiển của bạn, chọn & nbsp; node.js & nbsp; và & nbsp; 3.0 trở lên. & Nbsp;Connect Your Application. When the Wizard prompts you to select your driver version, select Node.js and 3.0 or later. Connect Your Application. When the Wizard prompts you to select your driver version, select Node.js and 3.0 or later

Sao chép chuỗi kết nối được cung cấp dưới dạng const & nbsp; uri & nbsp; = & nbsp; "MongoDB+srv: //:@/test? Retrywrites = true & w = đa số" ;. Chuỗi kết nối đó sẽ là chuỗi mà chúng tôi sử dụng để kết nối với cụm của chúng tôi. Để biết thêm chi tiết về cách truy cập trình hướng dẫn kết nối và hoàn thành các bước được mô tả ở trên, xem tài liệu chính thức & NBSP;const uri = "mongodb+srv://:@/test?retryWrites=true&w=majority";. That connection string will be the string that we use to connect to our cluster. For more details on how to access the Connection Wizard and complete the steps described above, see the official documentation.const uri = "mongodb+srv://:@/test?retryWrites=true&w=majority";. That connection string will be the string that we use to connect to our cluster. For more details on how to access the Connection Wizard and complete the steps described above, see the official documentation.

Là bước cuối cùng, bây giờ chúng tôi cần tạo cơ sở dữ liệu trong máy chủ của chúng tôi. Nếu bạn không biết cách làm điều này, chỉ cần tải xuống và cài đặt Mongo La bàn. & NBSP; Nếu bạn sao chép URI của mình và mở chương trình, nó sẽ tự động sao chép tất cả các kết nối dữ liệu và kết nối bạn.

Bây giờ, chúng tôi sẽ thay thế toàn bộ hệ thống cơ sở dữ liệu thành Mongo. Kiểm tra phiên bản mới này. Sao lưu trình điều khiển trước đó và thay đổi nội dung của nó & nbsp; với điều này.

Hãy xem cách nó hành xử bây giờ. Dịch vụ đang cho ăn từ cơ sở dữ liệu. Lưu ý rằng khi chúng tôi & nbsp; truy xuất & nbsp ;, ID mà chúng tôi vượt qua là một trong đó máy chủ đã được tạo trước đây bởi dịch vụ Mongo DB. & NBSP; Chúng ta phải có được ID này mà máy chủ Mongo tạo và điền vào đối tượng máy khách của chúng ta với nó để nó "luôn đồng bộ" với dữ liệu máy chủ mọi lúc. & NBSP;retrieve , the ID that we pass is one that the server has already previously generated by the mongo DB Service.  We must obtain this id that the mongo server generates and populate our client object with it so that it "stays in sync" with the server data at all times. retrieve , the ID that we pass is one that the server has already previously generated by the mongo DB Service.  We must obtain this id that the mongo server generates and populate our client object with it so that it "stays in sync" with the server data at all times. 

Điều này rất quan trọng để biết bởi vì, giống như trong MySQL/Mariadb, bất cứ khi nào bạn tạo một đối tượng trong cơ sở dữ liệu, bạn không cần phải giới thiệu ID vì cả hai hệ thống (SQL và Mongo) sẽ tự động tạo ID này cho bạn.

Hãy xem dòng 48:

this.collection.updateone ({id: client.id}, {'$ set': {'name': client.name, 'địa chỉ': client.address}}, (err, item) & nbsp; là cách bạn Thông báo cho các tìm kiếm trong các trường đầu vào của Mongo. UpdateOne là truy vấn Mongo, tiếp theo là một tập hợp các bản cập nhật được đặt theo cách tương tự như ví dụ.

Bây giờ chúng tôi có một trình điều khiển nhỏ tương tác với các bộ sưu tập của chúng tôi trong Mongo DB. Chúng tôi đang trích xuất & nbsp; & nbsp; Client & nbsp; đối tượng trong xuất mô mô để chúng tôi có thể gọi nó từ bất kỳ mô -đun nào khác mà chúng tôi sử dụng.Client object in the module exports so we can call it in from any other module we use.Client object in the module exports so we can call it in from any other module we use.


Tạo raThewebservicereating the webservice

Cho đến bây giờ chúng tôi đã tập trung vào phần kết nối DB của hướng dẫn này, tuy nhiên bây giờ chúng tôi cần xem phần dịch vụ web. Điều này một lần nữa sẽ khá thẳng về phía trước nhưng có một vài điều mà bạn sẽ cần phải ghi nhớ. Để bắt đầu, bây giờ chúng tôi sẽ tải tệp index.js mà chúng tôi đã tạo trước đó và chúng tôi sẽ sử dụng Nodemon như chúng tôi đã mô tả trước đây để hoạt động thoải mái hơn.

Để kiểm tra điểm cuối của chúng tôi, chúng tôi sẽ sử dụng Postman. Postman là một công cụ rất hữu ích để kiểm tra các điểm cuối. Bạn cũng có thể sử dụng Curl nếu bạn là một người hâm mộ đầu cuối, nhưng trong thời gian hiện tại, chúng tôi sẽ sử dụng Postman.

Hãy hướng tới tệp trình điều khiển của chúng tôi trước. Chúng ta cần xóa tất cả các dòng trong tệp mà chúng ta đã đặt cho đến khi kết thúc định nghĩa lớp và chỉ để lại hai dòng sau:

var client = new Client();

module.exports = client;

Tệp trình điều khiển, được sửa nên trông như thế này (hãy nhớ thay đổi URI của riêng bạn cho máy chủ Mongo của riêng bạn):

Chúng tôi xác định một đối tượng (máy khách) thông qua một lớp. Sau đó, chúng tôi khởi động lớp đó trong một biến và xuất nó thông qua mô -đun. Xuất bản để bất kỳ mô -đun nào khác nhập nó có thể có quyền truy cập vào chức năng được đưa ra bởi tập lệnh của chúng tôi. Bây giờ chúng ta hãy xem index.js. .npm install express  and after that  npm install body-parser) ​npm install express  and after that  npm install body-parser

Bây giờ, nhập khẩu ở đầu là các phần của trình phân tích cú pháp mà chúng ta sẽ sử dụng để đọc và viết dữ liệu JSON từ các kiến ​​nghị của chúng tôi. & NBSP; Chúng ta hãy kiểm tra những gì đang diễn ra trong mỗi một trong số các chức năng mà chúng ta có. & Nbsp;

/clients/new

Chúng tôi lấy tên và địa chỉ, phù hợp với thông tin bên trong đối tượng máy khách và thêm nó vào cơ sở dữ liệu. & NBSP;

/clients/get

Điều này là một chút khó khăn hơn vì chúng ta phải chiến đấu một chút chống lại quan niệm của JavaScript và hứa hẹn sẽ hiểu đúng những gì đang diễn ra ở đây. Bạn cần phải đi đến & nbsp; Phương pháp truy xuất bên trong trình điều khiển nơi hầu hết mọi thứ đang diễn ra

Lưu ý rằng chúng tôi đang chờ máy khách Mongo kết nối bằng cách sử dụng & nbsp; Await & nbsp; từ khóa dành riêng (do đó tại sao chúng tôi cần chờ, chức năng phải là & nbsp; async. & Nbsp; chúng tôi cần Mongo hoàn thành quá trình kết nối trước khi chúng tôi bắt đầu thực hiện công việc. Khi chúng ta đang ở trong chúng ta cần tìm đối tượng dựa trên ID của nó (dòng 11 trong mã bị bắn tỉa ở trên). ;await reserved keyword (hence why since we need to wait, the function must be async.  We need mongo to finish the connection process before we start doing stuff . Once we are in we need to find the object based on it's id ( line 11 in the snipped code above).   But this will take some time and we cannot expect the collection  object to take care of the response.   The function is asyncronous so it's going to take it's time and the code in the node.js will not stop.  await reserved keyword (hence why since we need to wait, the function must be async.  We need mongo to finish the connection process before we start doing stuff . Once we are in we need to find the object based on it's id ( line 11 in the snipped code above).   But this will take some time and we cannot expect the collection  object to take care of the response.   The function is asyncronous so it's going to take it's time and the code in the node.js will not stop.  

Phương thức FindOne sử dụng làm đầu vào & nbsp; một phương thức gọi lại sẽ gọi lại khi các hành động đã kết thúc. Vì vậy, những gì chúng tôi làm là chúng tôi chuyển đối tượng phản hồi từ bộ điều khiển và khi cơ sở dữ liệu hoàn thành tìm đối tượng, phần mềm trung gian của chúng tôi (trình điều khiển) sẽ chăm sóc xử lý phản hồi trở lại. & NBSP;Driver.js) will take care of handling the response back. Driver.js) will take care of handling the response back. 

Theo tôi, nó không quá thanh lịch, nhưng hãy nhớ rằng chúng ta không thể chặn quy trình chính và làm cho nó đợi cho đến khi phản hồi kết thúc.

/clients/commit

Phương pháp này tương tự như phương thức mới trước đó vì chúng tôi không cần chờ thông tin được giải quyết.

Về lỗi -> bài tập về nhà

Tôi muốn thêm rằng ví dụ này chỉ là cố gắng chỉ ra cách kết nối dữ liệu với MySQL / Mongo DB như một cách để minh họa cách giải quyết nó và hoàn thành nó. Tuy nhiên, có nhiều trường hợp mà tôi không dự tính trong mã này. Điều gì xảy ra nếu máy chủ được cung cấp ID không tồn tại? Loại trường hợp này cũng phải được dự tính và máy chủ của bạn phải trả về các phản hồi và lỗi hợp lý khi được dự tính. Tôi đã không suy nghĩ về nhiều trường hợp này vì tôi đã hết thời gian để viết ra hướng dẫn này :( (xin lỗi các bạn) nhưng hãy cẩn thận với những câu trả lời có thể phát sinh cho từng trường hợp.

Để mô phỏng (và kiểm tra) hệ thống chúng tôi sẽ sử dụng & nbsp; Postman. & Nbsp; Nếu bạn chưa sử dụng Postman, tôi sẽ cố gắng tóm tắt bạn với một mô tả nhỏ một lần nữa: Postman là GUI Curl. & NBSP; Nó được sử dụng để mô phỏng các kiến ​​nghị đến máy chủ qua POST và nhận được. Tải xuống chương trình cho PC của bạn từ trang web chính thức của họ.Postman. If you haven't used postman, i'll try to brief you with a small description again: Postman is gui curl.  It's used to simulate petitions to servers via post and get. Download the program for your pc from their official website.Postman. If you haven't used postman, i'll try to brief you with a small description again: Postman is gui curl.  It's used to simulate petitions to servers via post and get. Download the program for your pc from their official website.

Làm thế nào để kiểm traow to test

Nếu bạn sẽ không sử dụng Curl và muốn học cách sử dụng Postman. Tải xuống và cài đặt chương trình. Khi bạn đã cài đặt Postman. Fun nó lên và tạo một yêu cầu mới

Bây giờ, hãy điền vào dữ liệu như được hiển thị trong hình sau để kiểm tra thêm một ứng dụng khách mới. Đảm bảo rằng bạn đang kiểm tra các hộp và điền vào thông tin bên trong & nbsp; params & nbsp; tab. Ngoài ra, hãy đảm bảo rằng & nbsp; cổng & nbsp; được đặt chính xác. Trong trường hợp của tôi, URL là & nbsp; localhost: 300/khách hàng/new & nbsp;Params tab. Also, make sure that the port is set correctly. In my case, the url is ​localhost:300/clients/new Params tab. Also, make sure that the port is set correctly. In my case, the url is ​localhost:300/clients/new 

Nhấn Gửi và kiểm tra phản hồi của máy chủ cũng như cơ sở dữ liệu của bạn. Bạn có thể sử dụng điều này để kiểm tra cả MySQL và MongoDB & NBSP; điểm cuối và xem những gì máy chủ phản hồi. & nbsp; Đây là một giới thiệu nhỏ về cách bạn có thể thực hiện dịch vụ web & nbsp; Dễ dàng sử dụng JavaScript. This is a small introduction to how you can do webservices  easily using Javascript. This is a small introduction to how you can do webservices  easily using Javascript.

Một lần nữa, hãy nhớ rằng tôi đã cố gắng giữ điều này rất ngắn, vì vậy tôi không giới thiệu nhiều khái niệm như kiểm tra lỗi hoặc làm thế nào để kiến ​​trúc sư hệ thống của bạn đúng cách. Nhưng điều này có thể cung cấp cho bạn một ý tưởng nhỏ nếu bạn hơi lạc lõng với cách làm cho nó xảy ra.

Tôi hy vọng bài viết này được sử dụng cho bạn. Mã hóa công bằng!

Our reader's favorite picksur reader's favorite picks

Subscribe to our newsletterubscribe to our newsletter

Hãy để chúng tôi gửi cho bạn thư rác theo thời gian. Vâng, đó là một chút thư rác, nhưng thật là spam, chất lượng tối cao để thành thật!

Làm thế nào có thể thêm dữ liệu trong cơ sở dữ liệu bằng JavaScript?

Tạo tệp JS có tên "Chèn" trong thư mục DBEXample và đặt dữ liệu sau vào đó: var mysql = abel ('mysql');var con = mysql.createdConnection ({...

var mysql = yêu cầu ('mysql') ;.

var con = mysql.....

Chủ nhà: "Localhost",.

Người dùng: "Root",.

Mật khẩu: "12345",.

Cơ sở dữ liệu: "Javatpoint".

Tôi có thể sử dụng JavaScript để truy cập cơ sở dữ liệu không?

JavaScript không thể truy cập trực tiếp vào cơ sở dữ liệu.Bạn sẽ cần phải có một số thành phần phía máy chủ thực hiện các yêu cầu (có thể thông qua HTTP), phân tích chúng và trả về dữ liệu được yêu cầu.. You'll need to have some server-side component that takes requests (probably via HTTP), parses them and returns the requested data.. You'll need to have some server-side component that takes requests (probably via HTTP), parses them and returns the requested data.