Your Choice JavaScript News

Node News Tuesday, November 28

Node News Preview / TLDR

Tags: Duration, views, Common Node.js Security, Secure Node Code, CSS Grid

  • In this tutorial, we will create a Node.js application that allows a user to upload a file to their DigitalOcean Space by submitting a form on the front-end of a website.
  • style.csshtml { – font-family: sans-serif; – line-height: 1.5; – color: #333; – } – – body { – margin: 0 auto; – max-width: 500px; – } – – label, – input { – display: block; – margin: 5px 0; – } – – With these three files, we have an…
  • Upload a File to a Space with Multer – – Now that we have our server environment up and running properly, the last step is to integrate the form with Multer and Multer S3 to make a file upload to Spaces.
  • In server.js, scroll back up to the top and paste the following code below the constant app = express(); – – // Set S3 endpoint to DigitalOcean Spaces – const spacesEndpoint = new s3 = new aws.S3({ – endpoint: spacesEndpoint – }); – – Using the example from the multer-s3…
  • server.js… – – // Change bucket property to your Space name – const upload = multer({ – storage: multerS3({ – s3: s3, – bucket: ‘your-space-here’, – acl: ‘public-read’, – key: function (request, file, cb) { – console.log(file); – cb(null, file.originalname); – } – }) – }).

Tags: object storage, DigitalOcean Spaces, file, DigitalOcean Space, DigitalOcean Spaces API

  • That’s exactly what we’re going to do in the next examples, looking at some possible ways for making HTTP requests with Node.js by querying the Google Maps API.
  • There are two simple ways for making HTTP requests with Node.js as of today: by using a library which follows the classic callback schema or even better by using a library which supports Promises.
  • request is one of the most popular NPM module for making HTTP requests with Node.js.
  • To test out the example create a new file named  : – – By running the code with: – – you should be able to see the same output as in the previous example: – – request.get expects an url as a first argument and a callback as a second…
  • First time I wrote about making HTTP requests with Node.js I put the article on Medium.

Tags: HTTP requests, node.js, module, const response, popular NPM module

  • Using the CDN, we can cache publicly available objects loaded from Azure blob storage, a web application, virtual machine, application folder, or other HTTP/HTTPS location.
  • Though we can manage Azure CDN in Azure portal, there is still requirement to make it programming, for example we might purge the content in a CICD pipeline after a new web application deployment.
  • Azure CDN REST API has provided rich functionalities to achieve these, and I will demonstrate how to make it in Node.js.
  • Azure AD OAuth supports different grants including Authorization code, Implicit flow, Client Credential flow for different application scenario.
  • The following is a simple Node.js application sample to call Purge REST API of Azure CDN.

Tags: Azure CDN, Azure CDN REST, Azure CDN endpoint, Azure CDN profile, client credential flow

  • Thrown errors are also emitted because of integration between and V8: – – Currently, Node.js gives unhandled promise rejections a little more leeway.
  • For all other requests, two things are noted: – – The behaviour can be reproduced by testing the server with ApacheBench ( ): – – In order to fix these kinds of errors, add a call to the promise and handle the rejection: – – Node.js versions 6 and 8…
  • Matteo Collina’s make-promises-safe module binds an event listener to the global event, causing any unhandled promise rejections to terminate the Node.js process.
  • Node.js is moving towards treating unhandled promise rejections similarly to errors in the future.
  • Soon, Node’s behaviour will be to terminate with a stack trace whenever an unhandled promise rejection occurs.

Tags: unhandled promise rejection, unhandled exceptions, unhandled rejections, powerful choice, denial-of-service situations

  • Elasticsearch.js is the official Elasticsearch client for Node.js that ships with: – – Elasticsearch.js has one of the widest support for standard and advanced Elasticsearch features and is regularly tested against ES releases 0.90.12 and greater.
  • You can install the official elasticsearch.js module via npm (Node Package Manager) command: – – Using the elasticsearch.js module in Node we can easily connect to and interact with our Elasticsearch cluster on – – The client constructor accepts a config object/hash where you can define defaults parameters, or even…
  • In addition, our client variable inherits all methods of the elasticsearch.js Client constructor which corresponds to the official Elasticsearch API.
  • If no documents match the query, Qbox ElasticSearch returns: – – Elasticsearch.js supports all Query DSL features including leaf clauses and compound clauses.
  • Elasticsearch.js is a very mature Elasticsearch client for Node.js able to handle basic use cases and supporting many advanced ones.

Tags: elasticsearch, Elasticsearch API, query dsl, node.js application, elasticsearch.js

  • I will list some of them:Webpack Visualizer webpack plugin generating nice diagram from your bundle; there are similar tools for Rollup and Browserifycost-of-modules CLI calculating size impact of installed web app which estimates cost of adding package into your app web app visualise dependency tree of the packageWhy my node_modules…
  • Yet, in projects, I’m working on we use npm-cache because the install is taking ⏳too long⌛️, and bundle size counts megabytes.I don’t believe that the reason for it is a “natural project complexity” and we cannot do better.I think developers, including me and my pals, tend to skip using tools…
  • I have two hypothesis about it:The natural flow of discovering dependency is something like 🔍 Google 👉 👉 GitHub 👉 $ npm install; Google, NPM, and GitHub are not telling us about hidden cost of package we install; other tools do not fit into this flow and we keep…
  • If you are not sure, print dependency tree and calculate the impact of the package on your project.Real life exampleWhen making this tool I was about to add license-compatibility-checker package:Showing package impact with npm-considerPackage itself has just two dependencies, but with all transitive dependencies, it will count 77 packages.
  • You can help it if you:use tools to check your dependencies, including transitive dependencies;rationally reuse code: don’t include 77 packages when you need just one file, simply copy it;enforce rules above with dependency size/number tests and include them in your CI scriptsIf you support ideas in this article, please clap….

Tags: transitive dependencies, print dependency tree, natural project complexity, front-end toolchains, new dependency

Top Node Courses

The Complete Node.js Developer Course (2nd Edition) (60,232 students enrolled)

By Andrew Mead
  • Build, test, and launch Node apps
  • Create Express web servers and APIs
  • Store data with Mongoose and MongoDB
  • Use cutting-edge ES6/ES7 JavaScript
  • Deploy your Node apps to production
  • Create real-time web apps with SocketIO

Learn more.

Angular (Angular 2+) & NodeJS - The MEAN Stack Guide (26,806 students enrolled)

By Maximilian Schwarzmüller
  • Build real Angular + NodeJS applications
  • Understand how Angular works and how it interacts with Backends
  • Connect any Angular Frontend with a NodeJS Backend
  • Use MongoDB with Mongoose to interact with Data on the Backend
  • Use ExpressJS as a NodeJS Framework
  • Provide a great user experience by using Optimistic Updating on the Frontend
  • Improve any Angular (+ NodeJS) application by adding Error Handling

Learn more.