Based on the work of Apache CouchDB, PouchDB provides a simple API in which to store and retrieve JSON objects, due to the similiar API, and CouchDB’s HTTP API it is possible to sync data that is stored in your local PouchDB to an online CouchDB as well as syncing data from CouchDB down to PouchDB (you can even sync between 2 PouchDB databases).
Let’s face it, if you’re a web developer, you deal with APIs. Whether you write your own or use someone else’s, it’s just part of the job. REST APIs in particular are very common place. Unfortunately…
Starting with version 8.5.0, Node.js supports ES modules natively, behind a command line option. Most of the credit for this new functionality goes to Bradley Farias. This blog post explains the details.
async/await has given me the ability to cleanup my code a lot, by saving indentation levels (the infamous JavaScript callback hell), but also giving me the ability to control the flow of my application without having to resort to yet another indentation level.
A few months ago I wrote an article describing the various differences that exist between Node.js CommonJS modules and the new ES6 Module system; and described a number of challenges inherent with…
Enable ES modules in Node today with a new opt-in, spec-compliant, ECMAScript (ES) module loader that enables a smooth transition between Node and ES module formats with near built-in performance!
This article explains the basics of distributed tracing & OpenTracing, as well as shows an open-source solution to debug Node.js based microservices apps.
If you have built Node.js apps using frameworks like Express.js, you are probably aware of functions called “middlewares” and how they work. Redux brings that same concept to the front-end…
Server side rendering a React app can provide a few different benefits including performance and SEO. The problem is with those benefits comes a cost of additional complexity to your application. In this post, we’ll start from scratch and slowly build a server side rendered React (with React Router) while breaking down some of the complexity as we go.
Seneca is a microservices toolkit for Node.js. It provides plugins that look after the foundations of your app. This leaves you free to focus on the real, business code. No need to worry about which database to use, how to structure your components, or how to manage dependencies. Just start coding.
WebSockets can be very beneficial for building realtime communication or data streaming applications on the web, such as chat apps and applications that stream images or other types of media…
Leveraging GraphQL types to expose MongoDB capabilities in NodeJs with graphql-to-mongodb, the unobtrusive solution we came up with, and our rationales.
This article comes from Tomislav Capan, technical consultant and Node.js enthusiast. Tomislav originally published this in August 2013 in the Toptal blog — you can find the original post here; the…
Since JavaScript is the first choice of developers, the Node.js framework is gaining high popularity in web development. It's fast, efficient, and reliable.
Most of Node’s objects — like HTTP requests, responses, and streams — implement the EventEmitter module so they can provide a way to emit and listen to events. The simplest form of the event-driven…
An npm package to create and expose CRUD APIs in Node.js ExpressJS projects for mongoose models. Automatically creates swagger documentation for each API.
In this post we cover best practices for writing Node.js RESTful APIs - including route naming, authentication, API testing or using proper cache headers.
Danny walkes us through hacking a vulnerable Node.js application, as well as looking in-depth into three different vulnerabilities in popular npm packages.
I'm a huge fan of typed functional programming. I've also been working with JavaScript and Node.js for a lot longer than I've been working with languages like Haskell. So when we were building out the server for Ellie I wanted to use what I've learned studying functional programming while sticking with a language and platform familiar to web developers. A huge theme of my programming practice so far has been understanding how to represent effects like database calls and network requests in a way that is still testable.
Razzle is a tool that abstracts all complex configuration needed for SSR into a single dependency--giving you the awesome developer experience of create-react-app, but then leaving the rest of your app's architectural decisions about frameworks, routing, and data fetching up to you. With this approach, Razzle not only works with React, but also Reason, Elm, Vue, Angular, and most importantly......whatever comes next.
Let's take a look at the available options & tools to debug Node.js - the pino & debug modules, the built-in debugger, the v8 inspector & Visual Studio Code
Let's take a look at node-report, a project which helps you to do post-mortem diagnostics & figure out what went wrong with your Node.js app in production.
Starting from Docker 17.05+, you can create a single Dockerfile that can build multiple helper images with compilers, tools, and tests and use files from above images to produce the final Docker…
Most of Node’s objects — like HTTP requests, responses, and streams — implement the EventEmitter module so they can provide a way to emit and listen to events. The simplest form of the event-driven…
Objection.js is an ORM for Node.js that aims to stay out of your way and make it as easy as possible to use the full power of SQL and the underlying database engine while keeping magic to a minimum.
Sequelize is a promise-based ORM for Node.js and io.js. It supports the dialects PostgreSQL, MySQL, MariaDB, SQLite and MSSQL and features solid transaction support, relations, read replication and more.
This guide is intended to catch you up with the state of JavaScript testing in 2019. It combines information from the best recent articles, and our own experience at Welldone Software Solutions.
GraphQL Start is a pragmatic guide that explains how to build a GraphQL API (server) from start to finish on top of Node.js stack using JavaScript and GraphQL.js library.
Execute one command (or mount one Node.js middleware) and get an instant high-performance GraphQL API for your PostgreSQL database! - graphile/postgraphile
Tauri is a framework for building tiny, blazing fast binaries for all major desktop platforms. Developers can integrate any front-end framework that compiles to HTML, JS and CSS for building their user interface.
D. Bonetta, L. Salucci, S. Marr, and W. Binder. Proceedings of the 2016 ACM International Conference on Object Oriented Programming Systems Languages & Applications, page 531--547. ACM, (Nov 2, 2016)(acceptance rate 25%).
E. Barr, M. Marron, E. Maurer, D. Moseley, and G. Seth. Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, page 1003--1007. ACM, (2016)
J. Wang, W. Dou, Y. Gao, C. Gao, F. Qin, K. Yin, and J. Wei. Proceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering, page 520--531. IEEE Press, (2017)
J. Wang, W. Dou, Y. Gao, C. Gao, F. Qin, K. Yin, and J. Wei. 2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE), page 520-531. (October 2017)
H. Sun, D. Bonetta, F. Schiavio, and W. Binder. Proceedings of the 2019 IEEE/ACM International Symposium on Code Generation and Optimization, page 61--72. IEEE Press, (2019)
X. Chang, W. Dou, Y. Gao, J. Wang, J. Wei, and T. Huang. Proceedings of the 41st International Conference on Software Engineering, page 631--642. IEEE Press, (May 2019)