viblo.asia

Tìm hiểu về async/await trong nodejs

Mở đầu async/await có từ es7 giúp cho làm việc với xử lý bất đồng boọ trở nên đơn giản hơn. Để hiểu rõ cách dùng, và vì sao lại dùng thì chúng ta cùng lược qua lịch sử xử lý bất đồng bộ của javascript nhé. Callbacks Chúng ta sẽ bắt đầu ví dụ với hàm sau, ý tưởng hàm sẽ là đọc file, lưu nội dung file và gửi ra thông báo là 1 console.log Bạn sẽ thấy callbacks được sử dụng: const fs = require('fs'); fs.readFile('./doc.txt', (err,...

viblo.asia

Series NodeJs - Part 2

Trước khi bắt đầu thì cũng nên tìm hiểu 1 số ưu nhược điểm của NodeJs nhé. Để coi xem chúng ta có thể dùng NodeJs ở những trường hợp như thế nào? để tối ưu nhất... Ưu điểm: Tốn ít Ram hơn vì NodeJs chỉ nhận và xử lý nhiều kết nối với 1 signle thread. JSON APIs: với cơ chế event-driven, non-blocking I/O + JS sẽ thật tuyệt khi làm web bằng JSON Single page application: Với khả năng xử lý nhiều requests đồng thời phải hồi nhanh và...

viblo.asia

Cách dùng webpack để bundle Backend Express trong trường hợp kết hợp với Nextjs Serverside rendering

1. Giới thiệu Mình bắt đầu học nextjs vài ngày trước, nhưng ngay khi setup nextjs với express server để làm serverside render gặp lỗi khi cố gắng dùng webpack để bundle server code. Search trên mạng không thấy nên đành mày mò tự làm, thấy khá hay nên chia sẽ mong giúp ích cho bạn nào đang bị vướng ở chỗ này. Môi trường muốn cài đặt: Nextjs với syntax >es6, cái này sẽ được webpack built-in của nextjs giải quyết. Server Node.js dùng Express và...

programmer group

Basic usage of Sequelize

install $ npm install --save sequelize # You also need to install one of the following: $ npm install --save pg pg-hstore // postgreSql $ npm install --save mysql // mysql or mariadb $ npm install --save sqlite3 $ npm install --save tedious // MSSQL Establish connection const Sequelize = require('sequelize') const sequelize = new Sequelize(db.database, db.user, db.password, { //Table Name User Name Password host: db.host, //address port: db.port, //port dialect: 'mysql', //Database...

programmer group

Using RSA to Encrypt Front-end Public Key and Decrypt Back-end Private Key

In the project, users need to encrypt their usernames and passwords when they log in. RSA asymmetric encryption is chosen here. Public key private key: OpenSSL public key private key (Node crypto module restriction) Front end: jsencrypt library encryption Backend: Node crypto module Using OpenSSL to generate public key and private key Linux generates public key and private key commands: Genrsa-out rsa_private_key.pem 1024//Generate 1024-bit private key PKCs 8-topk8-inform PEM-in rsa_private_key.pem-out form PEM-nocrypt//convert RSA...

programmer group

Setting environment variables for nodejs

Setting environment variables for nodejs In front-end development, we need to set up the environment in which the application runs, usually including the development environment.developmentProduction environmentproductionEach environment can correspond to different configurations, such as the addresses requested in different environments, which are basically required in modern development toolsenvironment.jsSetting in files like this1While innodejsThis is not the case in China. Nodejs environment variable Nodejs providesprocess.envAPI),...

programmer group

GitBook related configuration and optimization

1. GitBook configuration instructions 1.1. Directory structure ├── book.json ├── README.md ├── SUMMARY.md ├── chapter-1/ | ├── README.md | ├── something.md ├── chapter-2/ | ├── README.md 1.2. The function of GitBook special file: file name describe book.json Configuration data (optional) README.md Preface or introduction of e-book (required) SUMMARY.md E-book catalogue (optional) GLOSSARY.md Glossary/Annotation Terminology List (optional) 1.3. Book.json configuration...

programmer group

Record an Electron + DLL / SO (node-ffi) + SQLite 3 project practice

background This is a full stack project, backend usenode。 The project needs to provide two versions of B-side and C-side: B-side requirements support multi-instance environments C-terminal requires cross-platform offline independent operation Some of the complex data processing functions in the project areC languageCompiledDynamic Link Library (DLL)(In Linux, it’s calledShared LibraryAbbreviationSOThe following is a general termDLL), andpythonThe encapsulated interface ishttpForm provides service. In the C-side version, due to...