Posts

Showing posts with the label nodejs

All Practice Series

Image
Introduction This is a comprehensive page about the technologies I have shared in series format. You can view brief introductions and links to directly access each series you are interested in. In the field of software development, to deploy a product from the initial idea to its release, the standard process typically involves several stages as follows: Database : Designing and implementing the database according to business requirements, storing data during the system's operation. Backend : Handling the main logic of the system, communicating with the database and services. Frontend : Building the interface for users to interact with the system, which could be a desktop, mobile, or web application. This usually includes implementing UI/UX and integrating APIs from the backend. DevOps : Deploying the system for use, which can be done on a server or in the cloud. Testing : Applying testing methods to ensure the product meets the standards for release. Of course, these are just stan...

Setup NextJS project with Bun

Image
Introduction Bun is a modern JavaScript runtime built with the goal of optimizing performance and improving the development experience. In addition to being compatible with the NodeJS ecosystem, Bun also integrates a package manager, bundler and test runner in the same tool. Some outstanding advantages of Bun: Dependency installation speed is significantly faster than npm, yarn and even pnpm. High startup and application execution performance thanks to being written in Zig. Integrates multiple tools in one runtime, helping reduce the number of dependencies required. Supports projects using modern frameworks like NextJS and NestJS well. Helps shorten build times and optimize the CI/CD process. How It Works Bun operates as an independent runtime and comes with its own package manager to replace NodeJS as well as npm/yarn/pnpm . Therefore, if you choose to use Bun , you no longer need to install NodeJS . When using Bun , you can directly run TypeScript (.ts) files. It still compiles T...

Using Prisma with PostgreSQL in NestJS

Image
Introduction Prisma is a next-generation ORM (Object-Relational Mapping) for NodeJS and TypeScript. It helps developers interact with databases intuitively and in a type-safe manner. Prisma possesses many outstanding advantages, including the ability to automatically generate optimal queries, automate the data migration process, provide powerful code auto-completion, and minimize runtime errors thanks to TypeScript's strict type-checking system. Compared to TypeORM, Prisma delivers a superior development experience thanks to a centralized, readable, and maintainable schema structure within a single file (schema.prisma). Instead of having to define complex Entity classes with multiple decorators like TypeORM, Prisma automatically generates Prisma Client based on the schema, ensuring absolute synchronization between the database and code. Additionally, Prisma's Rust-based query engine mechanism helps optimize data query performance with PostgreSQL more effectively, naturally avoi...

NestJS Practice Series

Image
Introduction NestJS is a progressive NodeJS framework designed for building efficient, reliable, and scalable server-side applications. Built on top of TypeScript (but also supporting pure JavaScript), NestJS combines elements of Object-Oriented Programming (OOP), Functional Programming (FP), and Functional Reactive Programming (FRP). The outstanding advantages of NestJS include: Modular architecture: Helps organize code scientifically, easy to maintain and expand for large projects. Powerful TypeScript support: Fully leverage static typing to minimize errors during development. Flexibility: Allows easy integration with other libraries (like Express or Fastify) and supports a wide variety of communication protocols (REST, GraphQL, WebSockets, Microservices). Rich ecosystem: Provides ready-to-use tools for processing common tasks like Validation, Caching, Database mapping (TypeORM/Prisma), and Authentication. Dependency Injection: A powerful mechanism that helps manage...

Guide to pushing docker images to AWS ECR

Image
Introduction Amazon ECR (Elastic Container Registry) is a fully managed Docker Registry (image repository) by AWS. Instead of having to operate your own Docker Hub or install a Registry on a server, you use ECR to store, manage, and deploy Docker Container Images in a highly secure and scalable manner. Advantages Deep integration with AWS: ECR works most seamlessly with Amazon EKS (Kubernetes) and ECS. You only need to declare the image path, and AWS will handle the authentication and image pulling (pull) automatically. Absolute security: Use AWS IAM for authorization. Only authorized Services or Users can push/pull images. Images are also automatically encrypted at rest. Image Scanning: ECR automatically checks the images you push to find any libraries with security vulnerabilities (CVE), giving you more peace of mind about your code. Lifecycle Policies: You can set up automatic deletion of old images and untagged images to avoid wasting storage space. High performance: Since images a...