# nodejs

Published articles for nodejs.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Build a Video API with Twilio Programmable Video, Node.js, TypeScript, and Express

DevFeed: [Build a Video API with Twilio Programmable Video, Node.js, TypeScript, and Express](<https://devfeed.tech/articles/build-a-video-api-with-twilio-programmable-video-node-js-typescript-and-express-16098.md>)

Original publisher: [Read original article](<https://www.twilio.com/en-us/blog/developers/tutorials/product/build-api-twilio-programmable-video-node-js-typescript-express>)

Author: Mia Adjei

Published: 2026-08-31T00:00:00Z

Content type: tutorial

Language: en

Sources: [Twilio Blog](<https://devfeed.tech/sources/twilio-blog.md>)

Topics: [API](<https://devfeed.tech/topics/api.md>), [Node.js](<https://devfeed.tech/topics/node-js.md>), [Express](<https://devfeed.tech/topics/express.md>), [TypeScript](<https://devfeed.tech/topics/typescript.md>), [SDKs](<https://devfeed.tech/topics/sdks.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [api-js](<https://devfeed.tech/tags/api-js.md>), [api-keys](<https://devfeed.tech/tags/api-keys.md>), [api-node](<https://devfeed.tech/tags/api-node.md>), [api-nodejs](<https://devfeed.tech/tags/api-nodejs.md>), [api-twilio](<https://devfeed.tech/tags/api-twilio.md>), [build](<https://devfeed.tech/tags/build.md>), [build-api](<https://devfeed.tech/tags/build-api.md>), [developer-insights](<https://devfeed.tech/tags/developer-insights.md>), [env-file-security](<https://devfeed.tech/tags/env-file-security.md>), [express](<https://devfeed.tech/tags/express.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [javascript-api](<https://devfeed.tech/tags/javascript-api.md>), [node](<https://devfeed.tech/tags/node.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [nodejs](<https://devfeed.tech/tags/nodejs.md>), [nodejs-api](<https://devfeed.tech/tags/nodejs-api.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>), [twilio-api](<https://devfeed.tech/tags/twilio-api.md>), [twilio-programmable-video](<https://devfeed.tech/tags/twilio-programmable-video.md>), [typescript](<https://devfeed.tech/tags/typescript.md>), [use-api-with-javascript](<https://devfeed.tech/tags/use-api-with-javascript.md>), [video](<https://devfeed.tech/tags/video.md>), [video-api](<https://devfeed.tech/tags/video-api.md>), [video-javascript](<https://devfeed.tech/tags/video-javascript.md>), [video-js](<https://devfeed.tech/tags/video-js.md>)

### AI overview

A tutorial showing how to build an API that creates and manages video rooms programmatically using Twilio Programmable Video, Node.js, TypeScript, and Express.

### Source excerpt

Learn how to create and manage video chat rooms programmatically using Twilio Programmable Video and Node.js.

## Node.js 24.4.1 (Current)

DevFeed: [Node.js 24.4.1 (Current)](<https://devfeed.tech/articles/node-js-24-4-1-current-2828.md>)

Original publisher: [Read original article](<https://nodejs.org/en/blog/release/v24.4.1>)

Published: 2025-07-15T22:14:44Z

Content type: release

Language: en

Sources: [Node.js Blog](<https://devfeed.tech/sources/node-js-blog.md>)

Topics: [Node.js](<https://devfeed.tech/topics/node-js.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Security](<https://devfeed.tech/topics/security.md>), [V8](<https://devfeed.tech/topics/v8.md>), [cross-platform](<https://devfeed.tech/topics/cross-platform.md>), [Windows](<https://devfeed.tech/topics/windows.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [macOS](<https://devfeed.tech/topics/macos.md>)

Tags: [cross-platform](<https://devfeed.tech/tags/cross-platform.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [linux](<https://devfeed.tech/tags/linux.md>), [macos](<https://devfeed.tech/tags/macos.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [nodejs](<https://devfeed.tech/tags/nodejs.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [release](<https://devfeed.tech/tags/release.md>), [security](<https://devfeed.tech/tags/security.md>), [v8](<https://devfeed.tech/tags/v8.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

Node.js 24.4.1 is a security release addressing HashDoS in V8 and a Windows device-name path traversal protection bypass. The release also includes Windows, macOS, Linux, AIX, ARMv8, and source-code downloads.

### Source excerpt

Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.

## Node.js 20.19.2 (LTS)

DevFeed: [Node.js 20.19.2 (LTS)](<https://devfeed.tech/articles/node-js-20-19-2-lts-2723.md>)

Original publisher: [Read original article](<https://nodejs.org/en/blog/release/v20.19.2>)

Published: 2025-05-14T21:14:45Z

Content type: release

Language: en

Sources: [Node.js Blog](<https://devfeed.tech/sources/node-js-blog.md>)

Topics: [Node.js](<https://devfeed.tech/topics/node-js.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [cross-platform](<https://devfeed.tech/topics/cross-platform.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Script](<https://devfeed.tech/topics/script.md>), [servers](<https://devfeed.tech/topics/servers.md>)

Tags: [command-line](<https://devfeed.tech/tags/command-line.md>), [cross-platform](<https://devfeed.tech/tags/cross-platform.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [nodejs](<https://devfeed.tech/tags/nodejs.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [release](<https://devfeed.tech/tags/release.md>), [security](<https://devfeed.tech/tags/security.md>)

### AI overview

Node.js 20.19.2 is an LTS security release addressing vulnerabilities and fixes in async crypto error handling, llhttp, filesystem cleanup, and HTTP header parsing. It provides release binaries and installers for Windows, macOS, Linux, AIX, and ARM platforms, along with source code and documentation.

### Source excerpt

Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.

## Keycloak Nodejs Connect 26.1.1 released

DevFeed: [Keycloak Nodejs Connect 26.1.1 released](<https://devfeed.tech/articles/keycloak-nodejs-connect-26-1-1-released-31683.md>)

Original publisher: [Read original article](<https://www.keycloak.org/2025/01/keycloak-nodejs-connect-2611-released>)

Author: Keycloak Team

Published: 2025-01-28T00:00:00Z

Content type: release

Language: en

Sources: [Keycloak Blog](<https://devfeed.tech/sources/keycloak-blog.md>)

Topics: [Keycloak](<https://devfeed.tech/topics/keycloak.md>), [Node.js](<https://devfeed.tech/topics/node-js.md>)

Tags: [idm](<https://devfeed.tech/tags/idm.md>), [kerberos](<https://devfeed.tech/tags/kerberos.md>), [keycloak-nodejs-connect-release](<https://devfeed.tech/tags/keycloak-nodejs-connect-release.md>), [ldap](<https://devfeed.tech/tags/ldap.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [nodejs](<https://devfeed.tech/tags/nodejs.md>), [openid-connect](<https://devfeed.tech/tags/openid-connect.md>), [release](<https://devfeed.tech/tags/release.md>), [saml](<https://devfeed.tech/tags/saml.md>), [sso](<https://devfeed.tech/tags/sso.md>)

### AI overview

Keycloak Nodejs Connect 26.1.1 was released on January 28, 2025. The article points readers to the migration guide and lists resolved enhancements and bugs.

### Source excerpt

Upgrading Before upgrading refer to the migration guide for a complete list of changes. All resolved issues Enhancements #552 Clean up old release code from Node.js adapter repo nodejs-connect Bugs #558 The draft nightly untagged release is created by "Release nightly" GH action nodejs-connect #562 Incorrectly resolved {project_versionNpm} expression in the documentation nodejs-connect

## Parallel Computing in Node.js via HPX Addons

DevFeed: [Parallel Computing in Node.js via HPX Addons](<https://devfeed.tech/articles/parallel-computing-in-node-js-via-hpx-addons-25136.md>)

Original publisher: [Read original article](<https://blog.brakmic.com/parallel-computing-in-node-js-via-hpx-addons/>)

Author: brakmic

Published: 2024-12-16T13:21:02Z

Content type: tutorial

Language: en

Sources: [Harris Brakmic - Coding](<https://devfeed.tech/sources/harris-brakmic-coding.md>)

Topics: [Node.js](<https://devfeed.tech/topics/node-js.md>), [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Benchmark](<https://devfeed.tech/topics/benchmark.md>), [Algorithms](<https://devfeed.tech/topics/algorithms.md>)

Tags: [asynchronous](<https://devfeed.tech/tags/asynchronous.md>), [benchmark](<https://devfeed.tech/tags/benchmark.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [coding](<https://devfeed.tech/tags/coding.md>), [hpx](<https://devfeed.tech/tags/hpx.md>), [integration](<https://devfeed.tech/tags/integration.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [node](<https://devfeed.tech/tags/node.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [nodejs](<https://devfeed.tech/tags/nodejs.md>), [performance](<https://devfeed.tech/tags/performance.md>)

### AI overview

A practical guide to building a Node.js addon that integrates HPX, a C++ parallelization framework. It explains integration challenges such as asynchronous operations, thread management, predicate functions, data-copy overhead, and performance trade-offs, with examples and benchmark results for algorithms including countIf and sort.

### Source excerpt

Explore building a Node.js addon with HPX, a C++ parallelization framework. This article covers the integration challenges, such as managing asynchronous operations and reducing performance overhead. Learn how batch predicate functions can enhance the performance of complex algorithms like countIf and sort, while simpler tasks see limited gains. Ideal for developers interested in combining JavaScript with parallel C++ capabilities, the guide includes practical examples and benchmark results.

## Node.js 22.4.1 (Current)

DevFeed: [Node.js 22.4.1 (Current)](<https://devfeed.tech/articles/node-js-22-4-1-current-2784.md>)

Original publisher: [Read original article](<https://nodejs.org/en/blog/release/v22.4.1>)

Published: 2024-07-09T02:31:49Z

Content type: release

Language: en

Sources: [Node.js Blog](<https://devfeed.tech/sources/node-js-blog.md>)

Topics: [Node.js](<https://devfeed.tech/topics/node-js.md>), [Security](<https://devfeed.tech/topics/security.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [cross-platform](<https://devfeed.tech/topics/cross-platform.md>)

Tags: [cross-platform](<https://devfeed.tech/tags/cross-platform.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [nodejs](<https://devfeed.tech/tags/nodejs.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [release](<https://devfeed.tech/tags/release.md>), [security](<https://devfeed.tech/tags/security.md>)

### AI overview

Node.js 22.4.1 is a security release addressing several vulnerabilities, including bypasses of network import restrictions and the permission model, as well as incomplete fixes for prior issues.

### Source excerpt

Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.

## Node.js 20.8.1 (Current)

DevFeed: [Node.js 20.8.1 (Current)](<https://devfeed.tech/articles/node-js-20-8-1-current-2741.md>)

Original publisher: [Read original article](<https://nodejs.org/en/blog/release/v20.8.1>)

Published: 2023-10-13T21:08:42Z

Content type: release

Language: en

Sources: [Node.js Blog](<https://devfeed.tech/sources/node-js-blog.md>)

Topics: [Node.js](<https://devfeed.tech/topics/node-js.md>), [Vulnerabilities](<https://devfeed.tech/topics/vulnerabilities.md>), [Security](<https://devfeed.tech/topics/security.md>), [releases](<https://devfeed.tech/topics/releases.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [cross-platform](<https://devfeed.tech/topics/cross-platform.md>)

Tags: [cross-platform](<https://devfeed.tech/tags/cross-platform.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [nodejs](<https://devfeed.tech/tags/nodejs.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [release](<https://devfeed.tech/tags/release.md>), [releases](<https://devfeed.tech/tags/releases.md>), [security](<https://devfeed.tech/tags/security.md>), [vulnerabilities](<https://devfeed.tech/tags/vulnerabilities.md>)

### AI overview

Node.js 20.8.1 is a current release that fixes multiple high-, medium-, and low-severity security vulnerabilities, including HTTP/2 denial-of-service issues, path traversal, integrity-check bypasses, and WebAssembly export-name code injection. It also updates dependencies and improves permission and policy-related behavior.

### Source excerpt

Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.

## Stitch Fix's Move to Kubernetes for More Agile Service Deployment

DevFeed: [Stitch Fix's Move to Kubernetes for More Agile Service Deployment](<https://devfeed.tech/articles/towards-service-deployment-agility-29346.md>)

Original publisher: [Read original article](<https://multithreaded.stitchfix.com/blog/2023/09/19/towards-service-deployment-agility/>)

Published: 2023-09-19T15:00:00Z

Content type: article

Language: en

Sources: [Stitch Fix](<https://devfeed.tech/sources/stitch-fix.md>)

Topics: [Deployment](<https://devfeed.tech/topics/deployment.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [Amazon Elastic Kubernetes Service](<https://devfeed.tech/topics/amazon-elastic-kubernetes-service.md>), [Microservice](<https://devfeed.tech/topics/microservice.md>), [autoscaling](<https://devfeed.tech/topics/autoscaling.md>), [Apache Spark](<https://devfeed.tech/topics/spark.md>)

Tags: [autoscaling](<https://devfeed.tech/tags/autoscaling.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [emr](<https://devfeed.tech/tags/emr.md>), [golang](<https://devfeed.tech/tags/golang.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [nodejs](<https://devfeed.tech/tags/nodejs.md>), [python](<https://devfeed.tech/tags/python.md>), [scala](<https://devfeed.tech/tags/scala.md>), [spark](<https://devfeed.tech/tags/spark.md>)

### AI overview

This article describes Stitch Fix's effort to improve service deployment agility. It explains the platform's self-service goals, its transition from EMR-based Spark infrastructure to EKS, and the deployment challenges that motivated consideration of Kubernetes for core platform services, including standardization across languages, autoscaling, rollback, and traffic segmentation.

### Source excerpt

Introduction At Stitch Fix, our data platform is designed to be self-service, with our users taking ownership of their own ETL, models, and microservices. To support this approach, the platform team prioritizes user autonomy and end-to-end tooling in their tooling designs, minimizing the involvement of platform engineers in day-to-day engineering and data science workflows. We regularly evaluate our infrastructure against new frameworks to assess the costs and benefits of potential updates. Last year, we transitioned our EMR-based Spark infrastructure to EKS to take advantage of its benefits. The next logical step was to re-examine how our core platform services were deployed and updated, especially those still deployed directly to instances. We also recognized that Kubernetes, a popular open-source system for handling the deployment of containerized applications, could provide benefits for microservice orchestration beyond just batch compute infrastructure. Our existing instance-based service deployment framework was beginning to show its age in areas that were critical for Stitch Fix, such as the development lifecycle's velocity. As we saw an opportunity to leverage Kubernetes to address these issues, we identified pain points in our service deployment ecosystem. Pain Points Building and deploying services can be a time-consuming process, involving multiple steps and dependencies. We needed a solution that would streamline this process and enable us to deploy services more efficiently. Polyglot environments, where multiple programming languages are used within the same system, can present a challenge for deployment standardization. At Stitch Fix, we use a variety of languages, including Python, Golang, Nodejs, and JVM (Java and Scala), making it difficult to establish consistent deployment practices across the board. We needed a way to deploy polyglot environments in a standardized and efficient manner. Autoscaling and rollback capabilities are essential for manag

## Part 4: Beyond The Code and What I've Learned - Ethereum Payment

DevFeed: [Part 4: Beyond The Code and What I've Learned - Ethereum Payment](<https://devfeed.tech/articles/part-4-beyond-the-code-and-what-i-ve-learned-ethereum-payment-38733.md>)

Original publisher: [Read original article](<https://codecapsule.com/2022/11/29/ethereum-payment-part-4-beyond-the-code-and-learnings/>)

Author: Emmanuel Goossaert

Published: 2022-11-29T19:18:30Z

Content type: tutorial

Language: en

Sources: [Code Capsule](<https://devfeed.tech/sources/code-capsule.md>)

Topics: [Ethereum](<https://devfeed.tech/topics/ethereum.md>), [Blockchain](<https://devfeed.tech/topics/blockchain.md>), [Code](<https://devfeed.tech/topics/code.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [Front end](<https://devfeed.tech/topics/frontend.md>)

Tags: [algorithms-and-programming](<https://devfeed.tech/tags/algorithms-and-programming.md>), [algorithms-and-programming-blockchain-crypto-ethereum-mongodb-nodejs-payment-programming-typ](<https://devfeed.tech/tags/algorithms-and-programming-blockchain-crypto-ethereum-mongodb-nodejs-payment-programming-typ.md>), [blockchain](<https://devfeed.tech/tags/blockchain.md>), [code](<https://devfeed.tech/tags/code.md>), [crypto](<https://devfeed.tech/tags/crypto.md>), [developer](<https://devfeed.tech/tags/developer.md>), [developing](<https://devfeed.tech/tags/developing.md>), [ethereum](<https://devfeed.tech/tags/ethereum.md>), [functions](<https://devfeed.tech/tags/functions.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [mongodb](<https://devfeed.tech/tags/mongodb.md>), [networks](<https://devfeed.tech/tags/networks.md>), [nodejs](<https://devfeed.tech/tags/nodejs.md>), [payment](<https://devfeed.tech/tags/payment.md>), [product-design](<https://devfeed.tech/tags/product-design.md>), [programming](<https://devfeed.tech/tags/programming.md>), [typescript](<https://devfeed.tech/tags/typescript.md>), [web3](<https://devfeed.tech/tags/web3.md>)

### AI overview

The fourth and final article in a series reviews lessons from developing a hobby payment system for the Ethereum blockchain. It discusses extending the code, using redundant data providers, implementing couponing, handling Ethereum testing and production networks, and improving automation and safeguards before production use.

### Source excerpt

I'm sharing what I've learned while developing this project in terms of tech specificities product design when creating for the blockchain. The post Part 4: Beyond The Code and What I've Learned - Ethereum Payment first appeared on Code Capsule.

## Part 3: Processing Payments - Ethereum Payment

DevFeed: [Part 3: Processing Payments - Ethereum Payment](<https://devfeed.tech/articles/part-3-processing-payments-ethereum-payment-38732.md>)

Original publisher: [Read original article](<https://codecapsule.com/2022/11/29/ethereum-payment-part-3-processing-payments/>)

Author: Emmanuel Goossaert

Published: 2022-11-29T19:18:12Z

Content type: tutorial

Language: en

Sources: [Code Capsule](<https://devfeed.tech/sources/code-capsule.md>)

Topics: [Ethereum](<https://devfeed.tech/topics/ethereum.md>), [Blockchain](<https://devfeed.tech/topics/blockchain.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [algorithms-and-programming](<https://devfeed.tech/tags/algorithms-and-programming.md>), [algorithms-and-programming-blockchain-crypto-ethereum-mongodb-nodejs-payment-system-typescri](<https://devfeed.tech/tags/algorithms-and-programming-blockchain-crypto-ethereum-mongodb-nodejs-payment-system-typescri.md>), [api](<https://devfeed.tech/tags/api.md>), [blockchain](<https://devfeed.tech/tags/blockchain.md>), [crypto](<https://devfeed.tech/tags/crypto.md>), [ethereum](<https://devfeed.tech/tags/ethereum.md>), [mongodb](<https://devfeed.tech/tags/mongodb.md>), [nodejs](<https://devfeed.tech/tags/nodejs.md>), [payment](<https://devfeed.tech/tags/payment.md>), [processing](<https://devfeed.tech/tags/processing.md>), [system](<https://devfeed.tech/tags/system.md>), [typescript](<https://devfeed.tech/tags/typescript.md>), [web](<https://devfeed.tech/tags/web.md>), [web3](<https://devfeed.tech/tags/web3.md>)

### AI overview

A tutorial walkthrough of processing and validating payments from a web application on the Ethereum blockchain. It covers server-side prevalidation, submitting purchase transactions, tracking transaction status through polling, and handling successful or failed payments.

### Source excerpt

A walkthrough of the steps needed to process and validate payments from a web application on the Ethereum blockchain. The post Part 3: Processing Payments - Ethereum Payment first appeared on Code Capsule.

## Configure renovate bot for npm at Homegate

DevFeed: [Configure renovate bot for npm at Homegate](<https://devfeed.tech/articles/configure-renovate-bot-for-npm-at-homegate-23897.md>)

Original publisher: [Read original article](<https://medium.com/smg-real-estate/configure-renovate-bot-for-npm-at-homegate-a6ae11b56ce3?source=rss----2186e5b9bd8f---4>)

Author: Khanh Nguyen

Published: 2022-05-23T12:29:19Z

Content type: tutorial

Language: en

Sources: [Homegate Engineering Blog - Medium](<https://devfeed.tech/sources/homegate-engineering-blog-medium.md>)

Topics: [renovate](<https://devfeed.tech/topics/renovate.md>), [npm](<https://devfeed.tech/topics/npm.md>), [npm packages](<https://devfeed.tech/topics/npm-packages.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [GitLab](<https://devfeed.tech/topics/gitlab.md>), [Automation](<https://devfeed.tech/topics/automation.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [automatic-deployment](<https://devfeed.tech/tags/automatic-deployment.md>), [automation](<https://devfeed.tech/tags/automation.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [github](<https://devfeed.tech/tags/github.md>), [gitlab](<https://devfeed.tech/tags/gitlab.md>), [nodejs](<https://devfeed.tech/tags/nodejs.md>), [npm](<https://devfeed.tech/tags/npm.md>), [npm-packages](<https://devfeed.tech/tags/npm-packages.md>), [pipeline](<https://devfeed.tech/tags/pipeline.md>), [pipelines](<https://devfeed.tech/tags/pipelines.md>), [project](<https://devfeed.tech/tags/project.md>), [renovate](<https://devfeed.tech/tags/renovate.md>), [renovate-bot](<https://devfeed.tech/tags/renovate-bot.md>), [review](<https://devfeed.tech/tags/review.md>), [security](<https://devfeed.tech/tags/security.md>), [upgrade](<https://devfeed.tech/tags/upgrade.md>), [vulnerabilities](<https://devfeed.tech/tags/vulnerabilities.md>)

### AI overview

This article explains how Homegate configured Renovate Bot to automate npm dependency updates across more than 200 repositories. It describes scheduled merge requests, concurrency limits, smart bundling, automatic merging for minor and development dependencies, review requirements for major upgrades, custom npm hosts, and team responsibilities for handling failures and breaking changes.

### Source excerpt

Renovate bot is an automated dependency upgrade for npm packages. It supports many services such as gitlab & github. Homegate repositories structure At Homegate, we have over 200 repositories in micro-services architecture. Keeping services up to date is quite a big overhead. However, the benefits are obvious: Bugfixes New features Security issues / less vulnerabilities Evaluation session result from our engineering teamThe standard configuration We try to make process as automated and standardised as possible. The configuration will automatically create MRs for minor and major upgrade in our gitlab repos and auto-merge them. It is necessary to allow merge without approval in these repositories. Below you'll see our standard configuration with the following features: Schedule MR creations every hour on weekdays Limits apply (concurrent MRs / Rate of creation) Smart bundling can be configured, such as having all linters together or all of our shared frontend library related MRs together Auto-merge for minor and dev-dependencies Separation of major upgrade (requiring review) vs. minor upgrade (auto-merged) Configuration for custom npm host Each project has renovate.json that extends the standard homegate.json with custom config if necessary { "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": [ "config:base", ":prHourlyLimitNone", ":automergeLinters", ":automergeTesters", ":automergeTypes", ":automergeMinor", "group:definitelyTyped", "group:postcss", "group:linters", ":rebaseStalePrs", ":maintainLockFilesMonthly" ], "prConcurrentLimit": 2, "schedule": [ "after 6am and before 5pm every weekday" ], "ignoreDeps": ["node-sass", "stylelint", "stylelint-scss", "stylelint-config-standard", "stylelint-config-css-modules"], "packageRules": [ { "matchPackagePatterns": ["vue", "vue-router", "vuex"], "matchUpdateTypes": ["major"], "enabled": false }, { "matchPackagePatterns": ["^@aws-cdk", "aws-cdk"], "matchUpdateTypes": ["major"], "enabled": false }, { "d

## Flickr Engineering Team Vision & Guiding Principles

DevFeed: [Flickr Engineering Team Vision & Guiding Principles](<https://devfeed.tech/articles/flickr-engineering-team-vision-guiding-principles-29047.md>)

Original publisher: [Read original article](<https://code.flickr.net/2021/11/22/flickr-engineering-team-vision-guiding-principles/>)

Author: Alex Seville

Published: 2021-11-23T00:00:45Z

Content type: opinion

Language: en

Sources: [Flickr](<https://devfeed.tech/sources/flickr.md>)

Topics: [Development](<https://devfeed.tech/topics/development.md>), [Software](<https://devfeed.tech/topics/software.md>), [Code](<https://devfeed.tech/topics/code.md>), [Amazon Web Services](<https://devfeed.tech/topics/aws.md>), [data centers](<https://devfeed.tech/topics/data-centers.md>), [Digital Public Good](<https://devfeed.tech/topics/digital-public-goods.md>)

Tags: [amazon](<https://devfeed.tech/tags/amazon.md>), [aws](<https://devfeed.tech/tags/aws.md>), [communication](<https://devfeed.tech/tags/communication.md>), [data-centers](<https://devfeed.tech/tags/data-centers.md>), [development](<https://devfeed.tech/tags/development.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [history](<https://devfeed.tech/tags/history.md>), [innovation](<https://devfeed.tech/tags/innovation.md>), [nodejs](<https://devfeed.tech/tags/nodejs.md>), [open](<https://devfeed.tech/tags/open.md>), [photography](<https://devfeed.tech/tags/photography.md>), [standards](<https://devfeed.tech/tags/standards.md>), [team](<https://devfeed.tech/tags/team.md>), [teamwork](<https://devfeed.tech/tags/teamwork.md>), [uncategorized](<https://devfeed.tech/tags/uncategorized.md>), [vision](<https://devfeed.tech/tags/vision.md>)

### AI overview

Flickr presents its engineering team vision and guiding principles, covering psychological safety, inclusive communication, continuous feedback, incremental technology adoption, and reliable software delivery.

### Source excerpt

There's a rich history of engineering innovation and excellence at Flickr. The team has been involved in the development of specs and open standards, been an early adopter of technologies like NodeJS, and successfully migrated from Yahoo data centers to ... Continue reading ->

## Node.js 14.4.0 (Current)

DevFeed: [Node.js 14.4.0 (Current)](<https://devfeed.tech/articles/node-js-14-4-0-current-2575.md>)

Original publisher: [Read original article](<https://nodejs.org/en/blog/release/v14.4.0>)

Published: 2020-06-02T18:41:48Z

Content type: release

Language: en

Sources: [Node.js Blog](<https://devfeed.tech/sources/node-js-blog.md>)

Topics: [Node.js](<https://devfeed.tech/topics/node-js.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Security](<https://devfeed.tech/topics/security.md>), [TLS (Transport Layer Security)](<https://devfeed.tech/topics/tls.md>), [HTTP](<https://devfeed.tech/topics/http.md>)

Tags: [node-js](<https://devfeed.tech/tags/node-js.md>), [nodejs](<https://devfeed.tech/tags/nodejs.md>), [release](<https://devfeed.tech/tags/release.md>), [security](<https://devfeed.tech/tags/security.md>), [tls](<https://devfeed.tech/tags/tls.md>), [vulnerabilities](<https://devfeed.tech/tags/vulnerabilities.md>)

### AI overview

Node.js 14.4.0 is a security release that fixes TLS certificate verification bypass, HTTP/2 denial-of-service, and memory corruption vulnerabilities. It also updates root certificates, nghttp2, and related TLS, HTTP/2, N-API, and tooling components.

### Source excerpt

Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.

## How to Build a Twitch Bot Using TMI.JS (a moderator bot)

DevFeed: [How to Build a Twitch Bot Using TMI.JS (a moderator bot)](<https://devfeed.tech/articles/how-to-build-a-twitch-bot-using-tmi-js-a-moderator-bot-10682.md>)

Original publisher: [Read original article](<https://technotim.com/posts/twitch-bot/>)

Author: Techno Tim

Published: 2020-05-03T14:00:00Z

Content type: tutorial

Language: en

Sources: [Techno Tim](<https://devfeed.tech/sources/techno-tim.md>)

Topics: [Twitch](<https://devfeed.tech/topics/twitch.md>), [Bot](<https://devfeed.tech/topics/bot.md>), [API](<https://devfeed.tech/topics/api.md>), [OAuth](<https://devfeed.tech/topics/oauth.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [npm](<https://devfeed.tech/topics/npm.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [bots](<https://devfeed.tech/tags/bots.md>), [channel](<https://devfeed.tech/tags/channel.md>), [chat](<https://devfeed.tech/tags/chat.md>), [coding](<https://devfeed.tech/tags/coding.md>), [developer](<https://devfeed.tech/tags/developer.md>), [developer-portal](<https://devfeed.tech/tags/developer-portal.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [js](<https://devfeed.tech/tags/js.md>), [nodejs](<https://devfeed.tech/tags/nodejs.md>), [npm](<https://devfeed.tech/tags/npm.md>), [oauth](<https://devfeed.tech/tags/oauth.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [quick-start](<https://devfeed.tech/tags/quick-start.md>), [scopes](<https://devfeed.tech/tags/scopes.md>), [token](<https://devfeed.tech/tags/token.md>), [twitch](<https://devfeed.tech/tags/twitch.md>)

### AI overview

A video tutorial demonstrates how to build a Twitch moderator bot with TMI.JS, covering developer portal setup, OAuth scopes, access tokens, JavaScript, NodeJS, and NPM. It also explains inviting the bot to a channel and moderating chat.

### Source excerpt

Let's build a bot! Not a bad bot like a view bot, but bot for good.Let's build a Twitch moderator bot using tmi.js! The Twitch API is powerful and and already has lots of great bots however no bot has the flexibility of creating your own! In this video I will show you how to build a Twitch bot using TMI.JS from start to finish.You'll see how to use the developer portal, set up oauth, set the...

## Let's Build a Discord Bot Using DiscordJS - Moderator Bot

DevFeed: [Let's Build a Discord Bot Using DiscordJS - Moderator Bot](<https://devfeed.tech/articles/let-s-build-a-discord-bot-using-discordjs-moderator-bot-10526.md>)

Original publisher: [Read original article](<https://technotim.com/posts/discord-bot/>)

Author: Techno Tim

Published: 2020-02-17T14:00:00Z

Content type: tutorial

Language: en

Sources: [Techno Tim](<https://devfeed.tech/sources/techno-tim.md>)

Topics: [Discord bot](<https://devfeed.tech/topics/discord-bot.md>), [Discord.JS](<https://devfeed.tech/topics/discord-js.md>), [Discord](<https://devfeed.tech/topics/discord.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [npm](<https://devfeed.tech/topics/npm.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [bots](<https://devfeed.tech/tags/bots.md>), [chat](<https://devfeed.tech/tags/chat.md>), [coding](<https://devfeed.tech/tags/coding.md>), [discord](<https://devfeed.tech/tags/discord.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [nodejs](<https://devfeed.tech/tags/nodejs.md>), [npm](<https://devfeed.tech/tags/npm.md>), [open-source](<https://devfeed.tech/tags/open-source.md>)

### AI overview

A video tutorial shows how to build a Discord moderator bot with DiscordJS, JavaScript, NodeJS, and NPM. It covers using the developer portal, inviting the bot to a Discord server, and moderating channels.

### Source excerpt

Let's build a bot! Not a bad bot like a view bot, but bot for good.Let's build a discord moderator bot using discord.js! Discord is powerful chat + video client and already has lots of great bots however no bot has the flexibility of creating your own! In this video I will show you how to build a discord bot using DiscordJS from start to finish.You'll see how to use the developer portal, cre...

## Take the legwork out of API Gateway troubleshooting

DevFeed: [Take the legwork out of API Gateway troubleshooting](<https://devfeed.tech/articles/take-the-legwork-out-of-api-gateway-troubleshooting-14072.md>)

Original publisher: [Read original article](<https://www.serverless.com/blog/api-gateway-troubleshooting>)

Author: Verne Lindner

Published: 2019-11-20T00:00:00Z

Content type: tutorial

Language: en

Sources: [Serverless Blog](<https://devfeed.tech/sources/serverless-blog.md>)

Topics: [Amazon API Gateway](<https://devfeed.tech/topics/amazon-api-gateway.md>), [debug](<https://devfeed.tech/topics/debug.md>), [Serverless](<https://devfeed.tech/topics/serverless.md>)

Tags: [api-gateway](<https://devfeed.tech/tags/api-gateway.md>), [applications](<https://devfeed.tech/tags/applications.md>), [aws](<https://devfeed.tech/tags/aws.md>), [aws-lambda](<https://devfeed.tech/tags/aws-lambda.md>), [cloud-computing](<https://devfeed.tech/tags/cloud-computing.md>), [debug](<https://devfeed.tech/tags/debug.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [faas](<https://devfeed.tech/tags/faas.md>), [function-as-a-service](<https://devfeed.tech/tags/function-as-a-service.md>), [infrastructure-as-code](<https://devfeed.tech/tags/infrastructure-as-code.md>), [nodejs](<https://devfeed.tech/tags/nodejs.md>), [python](<https://devfeed.tech/tags/python.md>), [serverless](<https://devfeed.tech/tags/serverless.md>), [serverless-architecture](<https://devfeed.tech/tags/serverless-architecture.md>), [serverless-framework](<https://devfeed.tech/tags/serverless-framework.md>), [troubleshooting](<https://devfeed.tech/tags/troubleshooting.md>)

### AI overview

A troubleshooting article about tracking Lambda errors and debugging serverless applications behind API Gateway, with guidance for NodeJS and Python users.

### Source excerpt

Tag your Lambdas to track errors and debug serverless applications. If you're using NodeJS or Python, we'll help you find even the trickiest serverless application errors faster.

## NodeJS 内存泄漏检测与定位

DevFeed: [NodeJS 内存泄漏检测与定位](<https://devfeed.tech/articles/nodejs-41005.md>)

Original publisher: [Read original article](<https://blog.joway.io/posts/nodejs-debug/>)

Author: Joway

Published: 2019-11-10T00:00:00Z

Content type: tutorial

Language: zh

Sources: [Random Thoughts](<https://devfeed.tech/sources/random-thoughts.md>)

Topics: [Node.js](<https://devfeed.tech/topics/node-js.md>), [developer tooling](<https://devfeed.tech/topics/developer-tooling.md>), [Chrome](<https://devfeed.tech/topics/chrome.md>), [bug](<https://devfeed.tech/topics/bug.md>)

Tags: [bug](<https://devfeed.tech/tags/bug.md>), [chrome](<https://devfeed.tech/tags/chrome.md>), [comparison](<https://devfeed.tech/tags/comparison.md>), [devtools](<https://devfeed.tech/tags/devtools.md>), [dump](<https://devfeed.tech/tags/dump.md>), [nodejs](<https://devfeed.tech/tags/nodejs.md>), [object](<https://devfeed.tech/tags/object.md>), [snapshot](<https://devfeed.tech/tags/snapshot.md>), [string](<https://devfeed.tech/tags/string.md>), [tech](<https://devfeed.tech/tags/tech.md>)

### AI overview

This Chinese tutorial documents diagnosing and locating a Node.js memory leak using heapdump files and Chrome DevTools. It explains how to obtain heap snapshots, compare snapshots over time, and inspect object references and retained size while noting that increased memory or retained size alone does not conclusively prove a leak.

### Source excerpt

最近解决了一个 Node.JS 应用内存泄漏 Bug，顺便学会了用 Chrome DevTools 去看 heapdump 文件。这里做一些简单的记录。 如何「优雅地」获得 heapdump 文件 由于我们所有应用都是以容器部署的，所以要去获得某个容器内的文件，并拷贝到本地难度还是比较大，也非常麻烦。考虑到调试时或许会需要下载非常多次的 snapshot 文件，建议可以包下 heapdump 库，做成一个接口，把文件 dump 之后再传输给客户端，这样一劳永逸。

## 即刻多端实时通信实践

DevFeed: [即刻多端实时通信实践](<https://devfeed.tech/articles/article-41012.md>)

Original publisher: [Read original article](<https://blog.joway.io/posts/socket-io/>)

Author: Joway

Published: 2018-09-18T00:00:00Z

Content type: article

Language: zh

Sources: [Random Thoughts](<https://devfeed.tech/sources/random-thoughts.md>)

Topics: [Socket.IO](<https://devfeed.tech/topics/socket-io.md>), [WebSocket](<https://devfeed.tech/topics/websocket.md>), [Redis](<https://devfeed.tech/topics/redis.md>), [Load Balancing](<https://devfeed.tech/topics/load-balancing.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [Publish-subscribe pattern](<https://devfeed.tech/topics/pubsub.md>)

Tags: [backend](<https://devfeed.tech/tags/backend.md>), [channel](<https://devfeed.tech/tags/channel.md>), [clients](<https://devfeed.tech/tags/clients.md>), [cluster](<https://devfeed.tech/tags/cluster.md>), [load-balancing](<https://devfeed.tech/tags/load-balancing.md>), [nodejs](<https://devfeed.tech/tags/nodejs.md>), [redis](<https://devfeed.tech/tags/redis.md>), [room](<https://devfeed.tech/tags/room.md>), [socket](<https://devfeed.tech/tags/socket.md>), [tech](<https://devfeed.tech/tags/tech.md>), [websocket](<https://devfeed.tech/tags/websocket.md>)

### AI overview

This Chinese technical article explains how Jike's jike-io real-time communication infrastructure is built with socket.io. It describes server-to-client WebSocket notifications, per-user rooms, HTTP requests for business operations, socket.io's fallback and reconnection behavior, and Redis-based distribution across nodes, including sticky load balancing and the associated message-broadcast overhead. It also discusses connection spikes and Node.js bottlenecks.

### Source excerpt

背景 jike-io 是即刻基于 socket.io 构建的一个实时通信基础设施。目前客户端上的所有实时通信服务都是建立在其基础上，涵盖了私信、消息通知、用户反馈、活动页小游戏等诸多组件。 在目前即刻的实时通信设计里，我们的实时通信只是为了让服务端主动推送消息给客户端，客户端不会主动通过 websocket 发送消息。由于几乎我们所有需要发送消息的请求都会有一定业务逻辑在，而这个业务逻辑我们并不希望 websocket 连接层(jike-io)去处理，所以我们仍旧采用传统 HTTP 请求的方式去发送请求。至于之后是否需要推送消息给用户，由服务端调用 jike-io 的接口进行实现。

## REST API with KoaJS and MongoDB (Part - 3)

DevFeed: [REST API with KoaJS and MongoDB (Part - 3)](<https://devfeed.tech/articles/rest-api-with-koajs-and-mongodb-part-3-26290.md>)

Original publisher: [Read original article](<https://masnun.com/rest-api-koajs-mongodb-part-3/>)

Author: masnun

Published: 2017-08-09T09:47:16Z

Content type: tutorial

Language: en

Sources: [Abu Ashraf Masnun](<https://devfeed.tech/sources/abu-ashraf-masnun.md>)

Topics: [JSON Web Tokens](<https://devfeed.tech/topics/jwt.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [REST API](<https://devfeed.tech/topics/rest-api.md>), [MongoDB](<https://devfeed.tech/topics/mongodb.md>), [JSON](<https://devfeed.tech/topics/json.md>), [CRUD](<https://devfeed.tech/topics/crud.md>)

Tags: [authentication](<https://devfeed.tech/tags/authentication.md>), [crud](<https://devfeed.tech/tags/crud.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [jwt](<https://devfeed.tech/tags/jwt.md>), [koajs](<https://devfeed.tech/tags/koajs.md>), [middleware](<https://devfeed.tech/tags/middleware.md>), [mongodb](<https://devfeed.tech/tags/mongodb.md>), [nodejs](<https://devfeed.tech/tags/nodejs.md>), [rest](<https://devfeed.tech/tags/rest.md>)

### AI overview

Part 3 of a KoaJS and MongoDB REST API series explains how to add authentication with JSON Web Tokens, install JWT-related packages, secure routes with middleware, and return JSON authentication errors.

### Source excerpt

In Part -1 of this series, we saw how we can get started with KoaJS and in Part - 2 we built CRUD endpoints with MongoDB. In this part, we're going to work with authentication. We will be using JSON Web Tokens aka JWT for the auth part. We have written detailed pieces on JWT before. You [...] The post REST API with KoaJS and MongoDB (Part - 3) appeared first on Abu Ashraf Masnun.

## Right way to set env variable while exec or execFile in nodejs

DevFeed: [Right way to set env variable while exec or execFile in nodejs](<https://devfeed.tech/articles/right-way-to-set-env-variable-while-exec-or-execfile-in-nodejs-21526.md>)

Original publisher: [Read original article](<http://lifepluslinux.blogspot.com/2016/09/right-way-to-set-env-variable-while.html>)

Author: Suresh Alse (noreply@blogger.com)

Published: 2016-09-15T22:02:00Z

Content type: tutorial

Language: en

Sources: [Life Plus Linux](<https://devfeed.tech/sources/life-plus-linux.md>)

Topics: [Environment Variables](<https://devfeed.tech/topics/environment-variables.md>), [Processes](<https://devfeed.tech/topics/processes.md>)

Tags: [environment-variables](<https://devfeed.tech/tags/environment-variables.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [nodejs](<https://devfeed.tech/tags/nodejs.md>), [process](<https://devfeed.tech/tags/process.md>), [variable](<https://devfeed.tech/tags/variable.md>)

### AI overview

This tutorial explains that Node.js exec and execFile replace the existing environment when an env option is supplied, rather than adding variables to it. It recommends copying process.env and modifying the copy.

### Source excerpt

According to the official documentation, exec allows you to pass additional environment variables as part of options like this: This looks fine right? except that it totally isn't! By passing "env" as an option, you are not adding on to existing environment variables, but you are replacing it. This is not clear from the documentation and can leave you scratching your head for a while as it can seem to break the command for no particular reason at all! So, you need to essentially make a copy of process.env and modify it like follows. Thanks for stopping by!

## Introducing yakbak: Record and playback HTTP interactions in NodeJS

DevFeed: [Introducing yakbak: Record and playback HTTP interactions in NodeJS](<https://devfeed.tech/articles/introducing-yakbak-record-and-playback-http-interactions-in-nodejs-29041.md>)

Original publisher: [Read original article](<https://code.flickr.net/2016/04/25/introducing-yakbak-record-and-playback-http-interactions-in-nodejs/>)

Author: jeremyruppel

Published: 2016-04-25T19:22:18Z

Content type: tutorial

Language: en

Sources: [Flickr](<https://devfeed.tech/sources/flickr.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [API](<https://devfeed.tech/topics/api.md>), [client](<https://devfeed.tech/topics/client.md>), [HTTP](<https://devfeed.tech/topics/http.md>), [Mocking](<https://devfeed.tech/topics/mocking.md>), [Front end](<https://devfeed.tech/topics/frontend.md>), [CoAP](<https://devfeed.tech/topics/coap.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [client](<https://devfeed.tech/tags/client.md>), [front-end](<https://devfeed.tech/tags/front-end.md>), [http](<https://devfeed.tech/tags/http.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [mocking](<https://devfeed.tech/tags/mocking.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [nodejs](<https://devfeed.tech/tags/nodejs.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

This tutorial examines how to test a Flickr API client without depending on live HTTP interactions. It discusses stubbing the HTTP client, explains drawbacks such as coupling to implementation details, and introduces yakbak, a NodeJS HTTP playback module.

### Source excerpt

Did you know that the new Front End of www.flickr.com is one big Flickr API client? Writing a client for an existing API or service can be a lot of fun, but decoupling and testing that client can be quite ... Continue reading ->

## Parsing wav file in node.js

DevFeed: [Parsing wav file in node.js](<https://devfeed.tech/articles/parsing-wav-file-in-node-js-21523.md>)

Original publisher: [Read original article](<http://lifepluslinux.blogspot.com/2016/01/parsing-wav-file-in-nodejs.html>)

Author: Suresh Alse (noreply@blogger.com)

Published: 2016-01-08T22:19:00Z

Content type: tutorial

Language: en

Sources: [Life Plus Linux](<https://devfeed.tech/sources/life-plus-linux.md>)

Topics: [Node.js](<https://devfeed.tech/topics/node-js.md>), [Parsing](<https://devfeed.tech/topics/parsing.md>), [IO](<https://devfeed.tech/topics/io.md>), [Streams](<https://devfeed.tech/topics/streams.md>)

Tags: [javascript](<https://devfeed.tech/tags/javascript.md>), [node](<https://devfeed.tech/tags/node.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [nodejs](<https://devfeed.tech/tags/nodejs.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [stream](<https://devfeed.tech/tags/stream.md>)

### AI overview

A tutorial on parsing WAV files in Node.js. It explains how to combine streamed Buffer chunks, interpret hexadecimal audio data and amplitudes, account for endianness and two's-complement negative values, and separate audio channels.

### Source excerpt

I have worked with wav audio data in python before. Scipy provides a very nice way to do this using scipy.io.wavfile I wanted to do exactly the same in node.js. There is a module called wav which sort of does it. However I faced several problems. 1. The Reader() method reads the file stream and converts into chunks of Buffer. This is very good while building web apps as you can send chunks of data separately and combine it later. However, I was just writing a script that'd run offline, So I had to put all the buffers to an array and then use the concat method of Buffer. 2. The wav module doesn't do much processing and just throws the raw binary information at us. So, we have to take care of Combining hex data to get amplitudes - One frame can be represented using several blocks of 8-bit hex. The number of blocks per frame is got using blockAlign parameter in the format. Endianness - Data may or may not be in little endian format. So, while reading the blocks of hex data, we have to take care of this. Handling negative amplitudes - Frames spanning several blocks when negative can be little challenging to handle as they are just stored as their two's complement. Separating channels - The raw binary contains data of all the channels together. Fortunately, they are mentioned one after the other. Using channels parameter in the format, channels can be separated easily. So, let's see how I handled all the above cases. First, we need to capture the "format" of the audio file that contains information about the file. Then, on "end" event i.e after all the chunks have been combined, we will handle all the cases mentioned above as follows Concluding, in this article I showed you how to handle and parse wav files in node.js by resolving several problems such as merging chunks of Buffer, combining hex data to get amplitudes, endianness, handling negative amplitudes and separating channels.