Hướng dẫn node js shopping cart tutorial mysql - node js hướng dẫn giỏ hàng mysql

Một thẻ đã tồn tại với tên chi nhánh được cung cấp. Nhiều lệnh GIT chấp nhận cả tên thẻ và tên chi nhánh, vì vậy việc tạo nhánh này có thể gây ra hành vi bất ngờ. Bạn có chắc là bạn muốn tạo chi nhánh này?

Show

Một thẻ đã tồn tại với tên chi nhánh được cung cấp. Nhiều lệnh GIT chấp nhận cả tên thẻ và tên chi nhánh, vì vậy việc tạo nhánh này có thể gây ra hành vi bất ngờ. Bạn có chắc là bạn muốn tạo chi nhánh này?

Node.js là gì:

Node.js là nguồn mở và chủ yếu được sử dụng để tạo ứng dụng thời gian thực ở phía máy chủ với sự trợ giúp của nền tảng JavaScript thời gian chạy. Nó chỉ hỗ trợ động cơ V8 Google Chrome và môi trường ứng dụng hiệu suất cao. on the server-side with the help of runtime JavaScript platform. It supports only V8 Google Chrome Engine and a high-performance application environment.

Những điều quan trọng để xây dựng API:

  1. Linux System / Ubuntu Server để cài đặt Redis
  2. Node.js đã cài đặt
  3. Kiến thức JavaScript
  4. Người phát thơ

Redis Giỏ hàng sử dụng Node và Redis

Redis là gì?

Redis là một máy chủ cơ sở dữ liệu giá trị khóa cho lưu trữ dữ liệu có thể giúp nhiều mục tiêu khác với bộ đệm cơ sở dữ liệu đơn giản đến một người môi giới chứng khoán tin nhắn.

Thương mại điện tử là xu hướng nhất mà ai đó sẽ bắt đầu thêm vật phẩm vào giỏ, sau đó di chuyển và quay lại sau. Mọi người đều có thể mua bất cứ nơi nào bằng trang web Thương mại điện tử. Nó có thể tiết kiệm thời gian và công sức.

Thương mại điện tử với Node.js để cung cấp cho chúng tôi API mua sắm. API này có thể được áp dụng bất cứ khi nào người dùng cần thêm một mục vào giỏ. Chúng tôi có thể thu thập ID ở định dạng cookie và trích xuất dữ liệu khi cùng một người dùng quay lại.

Bước 1: Chúng tôi muốn cài đặt các gói nút cho Redis, Express và Body-Parser. Chúng tôi có thể sử dụng nhận xét sau đây cho gói thêm phần. We want to install the node packages for Redis, express, and body-parser. We can use the following comment for the package adding the section.

Bước 2: Thêm di động và cài đặt đoạn trích ExpressJS 4 Thêm vào mã VS để xây dựng ngay một tệp có tên Index.js và bắt đầu nhập ES4-Helloworld-Iample và nhấn Enter. Adding portable and Installing the ExpressJS 4 Snippets add on in VS code to instantly build a file called index.js and start typing es4-HelloWorld-example and hit enter.

Bước tiếp theo là tạo các điểm cuối.

Bước 3: Sau đó, tạo một tệp kết nối cho phép chúng tôi kết nối với Redis. Từ đó, chúng ta có thể tạo một tệp mới có tên Connection.js, thêm một mô -đun. Tuyên bố xuất khẩu.Then, create a connection file that permits us to connect to Redis. From this, we can create a new file called Connection.js, add a module. exports statement.

Bước 4: Từ dòng chức năng bên dưới, chúng ta có thể tạo và kết nối tình huống máy khách mới. From the below function line, we can create and connect the new client situation.

Nếu bạn đang sử dụng Redis trên máy chủ, những thứ được liệt kê không mặc định

redis.createClient (redis_url [, tùy chọn])

redis.createClient (cổng [, host] [, tùy chọn]

redis.createClient([options])

Bước 5: Để xây dựng kết nối với máy chủ Redis và kiểm tra nó. Đầu tiên, nhập nó bằng dòng sau và nhập gói Redis.To build a connection with the Redis server and test it. First, import it using the following line and import Redis package as well.

Sau đó viết mã sau vào điểm cuối ‘/basket/getbasket.

Bước 6: Chạy mã, bạn có thể nhận được kết quả sau Run the code, you can get the following results

Sau khi viết ra mã trên, Mở Postman và tạo yêu cầu POST.

Conclusion:

Node.js là nền tảng dễ nhất để xây dựng một giải pháp giỏ hàng.

Nếu bạn muốn tạo một giải pháp giỏ hàng bằng cách sử dụng node.js? Liên hệ với nhóm Web Node.js.Contact Webnexs Node.js team.

Webnexs là một trong những công ty phát triển Node.js thành công cung cấp giỏ hàng, nhiều nhà cung cấp và API, giải pháp thương mại điện tử tạo bảng quản trị bằng Node.js trên toàn thế giới. is one of the successful node.js development companies that provide the shopping cart, multi-vendor, and API, admin panel creation eCommerce solution using Node.js across the world.

Biết thêm chi tiết:

Hướng dẫn node js shopping cart tutorial mysql - node js hướng dẫn giỏ hàng mysql

Hướng dẫn node js shopping cart tutorial mysql - node js hướng dẫn giỏ hàng mysql

Việc lựa chọn redis cho hệ thống xe đẩy bắt nguồn từ mong muốn cải thiện hiệu suất của hệ thống giỏ hàng. Redis chèn và truy xuất ký hiệu O là O (1) trong khi đó của MySQL là O (N). Điều này có nghĩa là bất cứ khi nào bạn cố gắng truy xuất hoặc chèn một bản ghi từ máy chủ Redis, nó sẽ mất một thời gian liên tục, trong khi trên MySQL, nó sẽ thay đổi dựa trên số lượng bản ghi được lưu trữ trên bảng.

Sự kết luận
This shopping cart is assumed to have categories and products having standard attributes such as (SKU, selling price, stock level, expiration date) etc... and should be able to allow a user add to cart, edit what's in the cart as well as remove from cart.

Nếu có một điều tôi tin vào nó là sự thay đổi và tiến hóa liên tục và như vậy, tôi biến nó thành thói quen học một cái gì đó mỗi khi tôi phát triển các ứng dụng. Không có cách nào là một giải pháp hoàn hảo để cấu trúc các ứng dụng phụ trợ nhưng tôi chỉ đơn giản là đối chiếu kiến ​​thức từ các nguồn khác nhau và theo thời gian và kinh nghiệm. Tôi luôn sẵn sàng cải thiện điều này. Mặc dù ban đầu tôi đã đặt ra để hoàn thành việc này sau 3 ngày, nhưng cuối cùng tôi đã hoàn thành nó sau 4 ngày. Đây không phải là một chiến công xấu; Nhiều hơn nữa sẽ đến

Cảm ơn bạn đã đọc! Bạn có thể tìm thấy các điểm cuối cho ứng dụng giỏ hàng này trên giỏ hàng của bộ sưu tập bưu điện này sau url cơ sở cho ứng dụng giỏ hàng này là URL cơ sở tôi có thể được tìm thấy trên Twitter tại https://twitter.com/idiagbordarrel hoặc vui lòng tìm hiểu thêm Về tôi trên trang web của tôi tại https://idarrel.netlify.app.
Now with a little extra difficulty, the first thing I'd do is to assign tasks for these 3 days;

  • Ngày 1: Cấu trúc thư mục và chức năng chung. Folder structure and general functionalities.
  • Ngày 2: Kiểm tra đơn vị của tất cả các chức năng; Mặc dù điều này sẽ thích nhất trước khi mỗi chức năng được phát triển. Bằng cách đó, toàn bộ ứng dụng sẽ được xây dựng bằng TDD (phát triển theo hướng kiểm tra) Unit testing of all functionalities; although this would most like come before each functionality is developed. That way the entire application would be built using TDD (test-driven-development)
  • Ngày 3: Triển khai, tài liệu và chỉnh sửa bài viết này. Deployment, documentation and editing of this article.

Cấu trúc thư mục

Hướng dẫn node js shopping cart tutorial mysql - node js hướng dẫn giỏ hàng mysql

Mặc dù là một ứng dụng nhỏ và đơn giản, tôi đã cấu trúc ứng dụng cho tỷ lệ. Dưới đây tôi sẽ thảo luận về các thư mục và tệp khác nhau và mục đích của chúng; là cần thiết tôi sẽ bao gồm các ví dụ.

Các tập tin trên cấu trúc

Dưới đây tôi sẽ đưa ra các mô tả ngắn về các tệp chính trên gốc của thư mục và những gì chúng có nghĩa là gì và vai trò của chúng. Những định nghĩa này không có cách nào mô tả tiêu chuẩn về những gì chúng chính thức nhưng cách tôi mô tả chúng là gì và vai trò của chúng trong cơ sở mã của tôi.

  1. .ENV: Đây là tệp biến môi trường; Về cơ bản, tất cả các biến nhạy cảm được giữ ở đây như URL cơ sở dữ liệu hoặc khóa cả bí mật và công khai có thể được giữ ở đây. This is the environment variables file; basically all sensitive variables are kept here such as database URLs or keys both secret and public can be kept here.

  2. .Env.example: Tệp này chỉ đơn giản là cung cấp một cấu trúc của cách thức .Env nên được thiết lập; Nó có thể chứa các biến không có giá trị hoặc bao gồm các giá trị giả chứ không phải các giá trị thực tế This file simply provides a structure of how .env should be set up; it could contain just variables without values or consist of mock values and not the actual values

  3. .eslintrc.js: Điều này giữ các cấu hình cho ESLINT là một linter cho JavaScript và thậm chí cả bản thảo. This holds configurations for eslint which is a linter for javascript and even typescript.

  4. .gitignore: bao gồm các tệp và thư mục nên bị Git (một hệ thống kiểm soát phiên bản) bỏ qua This consist of files and folders that should be ignored by git(a version control system)

  5. GenerateKeypair.js: Điều này giữ một thuật toán để tạo các tệp *.pem, tức là các cặp khóa công khai và riêng tư để tạo và xác minh mã thông báo. This holds an algorithm to generate *.pem files i.e public and private key pairs for tokens generation and verification.

  6. NodeMon: Tệp này giữ các cấu hình cho Nodemon xử lý quay và khởi động lại máy chủ phát triển khi phát hiện các thay đổi được chỉ định. This file holds configurations for nodemon which handles spinning up and restarting the development server when specified changes are detected.

  7. Gói.json: Tệp này chứa thông tin về ứng dụng và được tạo bởi NPM. Nó được tạo bằng lệnh npm init This file holds information about the application and is generated by npm. It is generated with the npm init command

  8. Readme.md: Tệp này cho bất kỳ ai truy cập Codebase phải làm gì, làm thế nào để thực hiện hoặc ứng dụng là gì. This file tells anyone visiting the codebase what to do, how to do it or what the application is about.

  9. tsconfig.json: Tệp này giữ thông tin về cách TypeScript nên hoạt động trên ứng dụng và được tạo bởi TypeScript. Nó được tạo ra với lệnh tsc init. This file holds information about how typescript should work on the application and is generated by typescript. It is generated with the tsc init command.

Bây giờ, các thư mục trên

Dưới đây tôi sẽ mô tả các thư mục và loại tệp mà chúng dự định giữ; Tôi không nhất thiết phải đi theo các tệp trong các thư mục.

  1. /PRISMA: Thư mục này được tạo bởi PRISMA, đây là ORM (ánh xạ liên quan đến đối tượng) cho MySQL là cơ sở dữ liệu cho ứng dụng giỏ hàng này. Thư mục này giữ thư mục lược đồ và di chuyển được tạo ra và thao tác bởi Prisma. Sau đó, tệp Seed.ts cũng nằm ở đây và mục đích của nó là điền vào cơ sở dữ liệu với dữ liệu để bắt đầu. Để bắt đầu với Prisma và tạo thư mục, hãy chạy npx prisma init. Cho rằng bạn đã cài đặt @Prisma/CLI. This folder is generated by prisma, which is an ORM (object-relational mapping) for MySQL which is the database for this shopping cart application. This folder holds the schema and migrations folder which are generated and manipulated by Prisma. Subsequently, the seed.ts file also sits here and its purpose is to populate the database with data to get started. To get started with Prisma and generate the folder, run npx prisma init. Given that you have @prisma/cli installed.

Lưu ý: Hướng dẫn này giả định rằng bạn đã cài đặt NodeJS trên máy tính cục bộ của bạn. Truy cập nodejs nếu bạn không có nó. This walkthrough assumes you have nodejs installed on your local computer. Go to Nodejs if you don't have it.

  1. /SRC: Đây là thư mục làm việc của ứng dụng và tất cả các đường dẫn khác dưới đây sẽ liên quan đến điều này. This is the working directory of the application and all other paths below would be relative to this.

  2. /API/bộ điều khiển: Thư mục này giữ các bộ điều khiển định tuyến liên kết đến; Các bộ điều khiển này có hiệu lực xác nhận, thực hiện xác nhận của chính họ và gọi logic kinh doanh từ thư mục dịch vụ. This folder holds controllers that routes link to; these controllers effect validations, perform validations of themselves and call the business logic from service folder.

  3. /API/cơ sở dữ liệu/kho lưu trữ: Thư mục này giữ kho lưu trữ cho logic kinh doanh và đây chỉ đơn giản là các kết nối và hành động cơ sở dữ liệu, ví dụ như một kho lưu trữ có thể có phương thức tạo kết nối với cơ sở dữ liệu và tạo bản ghi hoặc hàng mới với thông tin được truyền cho nó. Điều này được thực hiện để cho phép thay đổi trong tương lai trong cơ sở dữ liệu. Mặc dù đây là một ứng dụng nhỏ, hãy tưởng tượng một ứng dụng khổng lồ với hàng trăm điểm cuối và chức năng và đột nhiên cần phải chuyển từ cơ sở dữ liệu SQL sang cơ sở dữ liệu NoQuery như MongoDB. Sẽ thật cồng kềnh khi đi đến mỗi trang và thay đổi kết nối cơ sở dữ liệu. Nhưng bằng cách này, tất cả các dịch vụ đều biết rằng nó gọi một phương thức tạo và được trả về bản ghi được tạo. This folder holds repositories for the business logic and these are simply database connections and actions e.g a repository could have a create method that connects to the database and creates a new record or row with the information passed to it. This is done to enable future change in database. Although this is a small application, Imagine a gigantic application with several hundred endpoints and functionality and all of a sudden there is a need to move from an SQL database to a NoSQL database like MongoDB. It would be cumbersome to go to each page and change database connection. But this way, all the service knows is that it calls a create method and is returned the created record.

  4. /API/tuyến đường: Thư mục này chứa tất cả các tuyến/điểm cuối cho ứng dụng được đề cập. This folder holds all routes/endpoints for the application in question.

  5. /API/Trình xác nhận: Thư mục này giữ các quy tắc xác thực cơ thể yêu cầu bằng trình xác nhận rõ ràng, các xác thực khác như truy vấn và thông số được thực hiện trong bộ điều khiển. Mặc dù những điều này cũng có thể được thực hiện với Trình xác nhận rõ ràng, tôi đã thực hiện chúng trong bộ điều khiển để hiển thị các cách tiếp cận khác nhau để thực hiện xác thực. Cá nhân, tôi thấy sử dụng giảm giá xác thực. This folder holds request body validation rules using the express validator, other validations like query and params are done within the controller. Although these can also be done with the express validator, I did them within the controller to show different approaches to carrying out validation. Personally, I find using express validator relieving.

  6. /Tài sản: Thư mục này chứa tất cả các tài sản trên ứng dụng như hình ảnh, âm thanh, video hoặc bất kỳ loại tài sản nào. This folder holds all assets on the application such as images, audios, videos or any type of asset.

  7. /config: Thư mục này giữ các tệp cấu hình. ví dụ: tệp index.ts trong các biến bản đồ thư mục này từ .env. Sao cho truy cập vào các biến .ENV xuất phát từ một nguồn thay vì phân tán trên ứng dụng. This folder holds configuration files. e.g the index.ts file in this folder maps variables from .env. Such that access to the .env variables stem from a single source rather than scattered across the application.

  8. /Core: Điều này giữ chức năng dựa trên lớp tự xác định. Ví dụ, thư mục này giữ các lớp thực hiện lỗi và xử lý phản hồi giữa các lớp khác. This holds self-defined class-based functionality. For example, this folder holds classes that perform error and response handling among others.

  9. /Trợ giúp: Thư mục này tương tự như /core mặc dù thay vì các lớp tự xác định, chúng là các chức năng đơn giản. This folder is similar to /core although rather than self-defined classes they are simple functions.

  10. /Jobs: Thư mục này giữ công việc cron. Về cơ bản, các đoạn mã phải được chạy định kỳ. This folder holds cron jobs. Basically, pieces of code that have to be run periodically.

  11. /Dịch vụ: Tôi đã tham khảo thư mục trên. Thư mục này giữ các lớp xử lý logic kinh doanh của ứng dụng. Về cơ bản, chức năng chính của các ứng dụng được giải quyết trong các lớp trong thư mục dịch vụ. I have made reference to the folder above. This folder holds classes that handle the business logic of the application. Basically, the major functionality of applications is resolved within the classes in the services folder.

  12. /Người đăng ký: Thư mục này giữ các sự kiện. Các sự kiện, trong trường hợp này, là các chức năng có thể chạy theo cách không chặn. Ví dụ về điều này là việc gửi email xác nhận một khi đăng ký người dùng có thể được gửi đến một sự kiện trong các thuê bao và nó sẽ chạy ngay cả sau khi phản hồi đã được gửi cho khách hàng. This folder hold events. Events, in this case, are functions that can run in a non-blocking way. Example of this is the sending of a confirmation email once a user registers can be sent to an event within subscribers and it'll run even after a response has been sent to the client.

  13. /Các loại: Điều này giữ tất cả các loại, giao diện và không gian tên sẽ được sử dụng trong suốt ứng dụng. Vì đây là một giải pháp TypeScript, do đó nhu cầu về các loại. This holds all types, interfaces and namespaces to be used throughout the application. Since this is a typescript solution thus the need for types.

Quy trình công nghệ

Hướng dẫn node js shopping cart tutorial mysql - node js hướng dẫn giỏ hàng mysql

Dòng chảy quá trình khá đơn giản ngay từ cái nhìn đầu tiên nhưng tôi sẽ hướng dẫn bạn qua quá trình suy nghĩ để tạo ra những cải tiến này và có thể có dưới đây.

Khi yêu cầu được gửi đến điểm cuối trên ứng dụng giỏ hàng này, ví dụ http://localhost:3500/auth/v1/register. Đầu tiên nó đạt được bộ định tuyến cho điểm cuối đó và sau đó nếu nó là điểm cuối công khai như cái này, nó sẽ đi đến bộ điều khiển xử lý điều đó. Nếu đó là một điểm cuối riêng tư như

//Example of instance method in a class
class animal {
  public color() {
    // ... some functionality here
  }
}

// How you call this method like 
const animalInstance = new animal();
animalInstance.color();
0, trước tiên, hãy tiến lên để bạn được xác thực với mã thông báo nên nằm trong tiêu đề yêu cầu và nếu có sẵn và hợp lệ, nó sẽ tiến hành bộ điều khiển cho tuyến đường đó. Sau đó, nếu đây là tuyến được bảo vệ của quản trị viên, nó sẽ kiểm tra thêm người dùng được ủy quyền nếu loại là của quản trị viên và nếu bạn sẽ tiến hành bộ điều khiển. Các tuyến đường truy cập cuối cùng sẽ truy cập lớp dịch vụ giữ logic kinh doanh hoặc triển khai thực tế của tuyến đường.Admin and if it is you then proceed to the controller.
All-access routes end up accessing the service class which holds the business logic or actual implementation of the route.

Việc triển khai này là đủ cho một ứng dụng đơn giản như thế này nhưng đối với một ứng dụng dài hơn và sẵn sàng sản xuất, nên có một luồng quy trình như dưới đây.

Hướng dẫn node js shopping cart tutorial mysql - node js hướng dẫn giỏ hàng mysql

Không có nhiều thay đổi từ cái cuối cùng ngoại trừ việc giới thiệu các khóa ứng dụng cung cấp cho tất cả các tuyến đường của bạn một số mức độ bảo mật và bảo tồn máy chủ của bạn khỏi bất kỳ loại lạm dụng nào với ủy quyền. Các khóa ứng dụng thường được phát hành khi bạn đăng ký trên ứng dụng và chọn sử dụng API.

Kiểm tra đơn vị

  • Chạy
    //Example of instance method in a class
    class animal {
      public color() {
        // ... some functionality here
      }
    }
    
    // How you call this method like 
    const animalInstance = new animal();
    animalInstance.color();
    
    1 để khởi tạo các bài kiểm tra với TypeScript
  • Chạy
    //Example of instance method in a class
    class animal {
      public color() {
        // ... some functionality here
      }
    }
    
    // How you call this method like 
    const animalInstance = new animal();
    animalInstance.color();
    
    2 để khởi tạo các bài kiểm tra với JavaScript,

Thử nghiệm rất quan trọng trong sự phát triển của bất kỳ ứng dụng nào, có thể là lớn hay nhỏ. Tôi sử dụng thử nghiệm để đảm bảo rằng các chức năng cốt lõi của mỗi đoạn mã được duy trì bất kể kiểu hoặc mẫu thực hiện. Tôi cũng thích nó bởi vì khi những người trẻ tuổi tham gia nhóm, nó ngăn chặn các cam kết hoặc triển khai không làm việc vô tình.

Hãy nói về một số lý do tại sao

Tại sao danh mục có trạng thái và sản phẩm không

Cách ứng dụng được cấu trúc theo cách mà bạn cần liên kết một danh mục với sản phẩm; Nếu đó là trường hợp nếu một danh mục bị xóa thì điều gì sẽ xảy ra với liên kết? Vì vậy, để giảm thiểu điều này, nếu bạn không muốn một danh mục, bạn chỉ cần chuyển trạng thái thành không hoạt động. Sản phẩm không mặt khác vì:
So to mitigate this, if you don't want a category you simply switch the status to Inactive. The product doesn't on the other hand because:

  1. Nó lưu trữ nhiều dữ liệu hơn hoặc có nhiều trường hơn
  2. Nó không liên kết đến bất cứ điều gì hoặc đúng hơn là không có bảng nào khác phụ thuộc vào nó.

Tại sao các phương thức tĩnh trên các phương thức thể hiện?

//Example of static method in a class
class animal {
  public static color() {
    // ... some functionality here
  }
}

// How you call this method like 
animal.color();

Nhập chế độ FullScreenen EXIT Mode FullScreen

Các phương thức tĩnh cho phép bạn truy cập trực tiếp vào phương thức mà không tạo một thể hiện của lớp; Một lợi ích ngay lập tức là nó không sử dụng bộ nhớ để lưu trữ thể hiện. Các phương pháp tĩnh được sử dụng trong đó phương pháp không có tương tác với các thuộc tính lớp. Do đó, chỉ có một trong những phương pháp như vậy tồn tại trên mỗi lớp trong khi các phương thức thể hiện bạn có thể tạo bao nhiêu trường hợp cần thiết.
Static methods are used where the method has no interaction with class properties. Thus only one of such methods exists per class whereas instance methods you can create as many instances as needed.

//Example of instance method in a class
class animal {
  public color() {
    // ... some functionality here
  }
}

// How you call this method like 
const animalInstance = new animal();
animalInstance.color();

Nhập chế độ FullScreenen EXIT Mode FullScreen

Các phương thức tĩnh cho phép bạn truy cập trực tiếp vào phương thức mà không tạo một thể hiện của lớp; Một lợi ích ngay lập tức là nó không sử dụng bộ nhớ để lưu trữ thể hiện. Các phương pháp tĩnh được sử dụng trong đó phương pháp không có tương tác với các thuộc tính lớp. Do đó, chỉ có một trong những phương pháp như vậy tồn tại trên mỗi lớp trong khi các phương thức thể hiện bạn có thể tạo bao nhiêu trường hợp cần thiết.

Một trong những lợi ích bạn thấy ngay lập tức là với các phương thức thể hiện, bạn có thể truy cập chức năng Constructor khi khởi tạo lớp và rút lại khi chúng ta thảo luận là các gợi ý thêm trong bộ nhớ để liên kết các trường hợp này.

Đây là những suy nghĩ tôi có trong đầu khi quyết định nên sử dụng các phương pháp tĩnh hay phiên bản.

//Example of abstract class
 abstract class animal {
  public color() {
    // ... some functionality here
  }
}

Nhập chế độ FullScreenen EXIT Mode FullScreen

Các phương thức tĩnh cho phép bạn truy cập trực tiếp vào phương thức mà không tạo một thể hiện của lớp; Một lợi ích ngay lập tức là nó không sử dụng bộ nhớ để lưu trữ thể hiện. Các phương pháp tĩnh được sử dụng trong đó phương pháp không có tương tác với các thuộc tính lớp. Do đó, chỉ có một trong những phương pháp như vậy tồn tại trên mỗi lớp trong khi các phương thức thể hiện bạn có thể tạo bao nhiêu trường hợp cần thiết.

Tại sao Redis cho xe đẩy chứ không phải MySQL?

Việc lựa chọn redis cho hệ thống xe đẩy bắt nguồn từ mong muốn cải thiện hiệu suất của hệ thống giỏ hàng. Redis chèn và truy xuất ký hiệu O là O (1) trong khi đó của MySQL là O (N). Điều này có nghĩa là bất cứ khi nào bạn cố gắng truy xuất hoặc chèn một bản ghi từ máy chủ Redis, nó sẽ mất một thời gian liên tục, trong khi trên MySQL, nó sẽ thay đổi dựa trên số lượng bản ghi được lưu trữ trên bảng.

Sự kết luận

Nếu có một điều tôi tin vào nó là sự thay đổi và tiến hóa liên tục và như vậy, tôi biến nó thành thói quen học một cái gì đó mỗi khi tôi phát triển các ứng dụng. Không có cách nào là một giải pháp hoàn hảo để cấu trúc các ứng dụng phụ trợ nhưng tôi chỉ đơn giản là đối chiếu kiến ​​thức từ các nguồn khác nhau và theo thời gian và kinh nghiệm. Tôi luôn sẵn sàng cải thiện điều này. Mặc dù ban đầu tôi đã đặt ra để hoàn thành việc này sau 3 ngày, nhưng cuối cùng tôi đã hoàn thành nó sau 4 ngày. Đây không phải là một chiến công xấu; Nhiều hơn nữa sẽ đến

Cảm ơn bạn đã đọc! Bạn có thể tìm thấy các điểm cuối cho ứng dụng giỏ hàng này trên giỏ hàng của bộ sưu tập bưu điện này sau url cơ sở cho ứng dụng giỏ hàng này là URL cơ sở tôi có thể được tìm thấy trên Twitter tại https://twitter.com/idiagbordarrel hoặc vui lòng tìm hiểu thêm Về tôi trên trang web của tôi tại https://idarrel.netlify.app.
You can find the endpoints for this shopping cart application on this postman collection shopping cart postman
The base URL for this shopping cart application is here base url
I can be found on Twitter at https://twitter.com/idiagbordarrel or
please find out more about me on my website at https://idarrel.netlify.app.