Your Choice JavaScript News

Node News Friday, February 16

Node News TLDR / Table of Contents

  • Local Authentication Using Passport in Node.js
    • This article shows how Passport, Node.js, Express, and MongoDB can be used to implement local authentication.
    • following command, app, local authentication, root folder, passport
  • Build a Todo App with Node.Js, ExpressJs, MongoDB and VueJs – Part 1
    • Build a Todo App with Node.Js, ExpressJs, MongoDB and VueJs
    • famous todo app, Todo App API, todo item todoRoutes, Todo item status, var Todo
  • How to prevent your Node.js process from crashing – DailyJS –
    • Interviewing some people for Node.js job positions I found two questions that nobody was answering correctly, and that frightened me: Think about it. Do you know the answers? Are you sure? If not…
    • non-zero exit code, Unhandled promise rejections, Unhandled promise rejection, stack trace, Node.js job positions
  • Can I use jQuery with Node.js?
    • This is my formula to make a simple crawler in Node.js. It is the main reason for wanting to do DOM manipulation on the server side and probably it’s the reason why you got here.
    • jquery, jquery node packages, jquery code, jsdom, easier. install jquery
  • How to Build and Structure a Node.js MVC Application —
    • In this tutorial, James Kolce shows how to create a note-taking app using Hapi.js, Pug, Sequelize and SQLite. Learn to build Node.js MVC apps by example.
    • following content, note, file, home page, following command
  • Node.js V8 internals: an illustrative primer –
    • When you switch from C++ to more “friendly” language, you get this strange feeling of being fooled by this new language, its environment or its runtime or something else (can’t tell you that). In C++…
    • code, machine code, virtual machine, hidden class, source code
  • In Node.js, how do I “include” functions from my other files?
    • Or…am I supposed to turn “tools” into a module, and then require it? << seems hard, I rather do the basic import of the tools.js file.
    • function, var, var fs, ,
  • Create a file called auth.html in the root folder of your app, with the following contents: – html – body – form action=/ method=post – div – labelUsername:/label – input type=text name=username / – br/ – /div – div – labelPassword:/label – input type=password name=password / – /div – div…
  • Run the following command: – npm install body-parser –save – – When thats done, create a file index.js in the root folder of your app and add the following content to it: – /* EXPRESS SETUP */ – – const express = require(‘express’); – const app = express(); – -…
  • Setting up Passport – First, we install passport with the following command: – npm install passport –save – – Then, add the following lines at the bottom of your index.js file: – /* PASSPORT SETUP */ – – const passport = (req, res) = res.send(Welcome (req, res) = res.send(error logging…
  • You know the drill: add the following code at the bottom of your index.js file: – /* MONGOOSE SETUP */ – – const mongoose = Schema = mongoose.Schema; – const UserDetail = new Schema({ – username: String, – password: String – }); – const UserDetails = mongoose.model(‘userInfo’, UserDetail, ‘userInfo’); -…
  • Add it to the bottom of your index.js file: – /* PASSPORT LOCAL AUTHENTICATION */ – – const LocalStrategy = LocalStrategy( – function(username, password, done) { – UserDetails.findOne({ – username: username – }, function(err, user) { – if (err) { – return done(err); – } – – if (!

Tags: following command, app, local authentication, root folder, passport

  • In this tutorial, we will build a famous todo app with Node.Js using ExpressJs framework and MongoDB.
  • The explosion of IoT has made developers start thinking API first, and before you wonder why I didn’t title this post Build a Todo App API with Node.Js ExpressJs, MongoDB, and VueJs; I gotta tell ya, we’ll build the client in part two of this post using Vue.Js.
  • js and update it with the following content: – – First, you would want users to get a list of all to-do items existing in the database, hence we defined a route (/all) that accepts a get request and returns a JSON object of todo items if successful.
  • When Mr. A makes a post request to route (/add), a new to-do item is created in the database.
  • At the project root folder, create a server.js file and update it with this: – – // Use morgan to log request in dev mode // Use routes defined in Route.js and prefix it with api // Website you wish to allow to connect // Request methods you wish to…

Tags: famous todo app, Todo App API, todo item todoRoutes, Todo item status, var Todo

  • In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.There are two important things here:The process doesnt crash.
  • You can listen to the unhandledRejection event emitted by (reason, promise) = { console.log(‘Unhandled Rejection at:’, reason.stack || reason) // Recommended: send the information to sentry.io // or whatever crash reporting service you use})For promises rejected with an error (e.g. Promise.reject(new Error(‘This is fine’))) this will print both the message…
  • So, it is important to always reject with an error object in order to get a stack trace!You can also listen to the warning event emitted by process and you will get information about unhandled rejections and much more.What happens if you dont handle the error event in astream?Create an…
  • Your process exits with a non-zero exit code and this is printed:events.js:137 throw er; // Unhandled ‘error’ event ^Error: ENOENT: no such file or directory, open ‘do-not-exists.
  • Otherwise something like this will kill your process:app.get(‘/foo’, (req, res, next) = { const foo = // …})Simple and nice tic-tac bomb waiting to crash your app on a Sunday.Remember:Always handle promise rejections.

Tags: non-zero exit code, Unhandled promise rejections, Unhandled promise rejection, stack trace, Node.js job positions

  • When the download is complete, handle it to and begin DOM manipulation just like using jQuery.
  • This example will print to the console all top questions showing on SO home page.
  • It couldn’t get easier than that 🙂 – – And run (assuming the script above is in file ): – – Some pages will have non-english content in a certain encoding and you will need to decode it to .
  • Say you want to list all posters from each top question on SO.
  • You have to first list all top questions (example above) and then enter each link, parsing each question’s page to get the list of involved users.

Tags: jquery, jquery node packages, jquery code, jsdom, easier. install jquery

  • Go ahead and create a server.js file in your application directory and all the following code to it: – ‘use strict’; – – const Hapi = require(‘hapi’); – const Hoek = require(‘hoek’); – const Settings = require(‘.
  • /settings’); – – const server = new port: Settings.port }); – – server.route({ – method: ‘GET’, – path: ‘/’, – handler: (request, reply) = { – reply(‘Hello, world!’)
  • Inside lib, lets create a routes.js file and add the following content: – ‘use strict’; – – module.exports = [ – // We’re going to define our routes here – ]; – – In this file, well export an array of objects that contain each route of our application.
  • To define the first route, add the following object to the array: – { – method: ‘GET’, – path: ‘/’, – handler: (request, reply) = { – reply(‘All the notes will appear here’); – }, – config: { – description: ‘Gets all the notes available’ – } – }, -…
  • Add the following definitions next to the previous route: – { – method: ‘POST’, – path: ‘/note’, – handler: (request, reply) = { – reply(‘New note’); – }, – config: { – description: ‘Adds a new note’ – } – }, – { – method: ‘GET’, – path: ‘/note/{slug}’, -…

Tags: following content, note, file, home page, following command

  • V8 introduced the idea of the hidden classes just to make the code execution faster.
  • For instance, when we have code like this.function Foo(a, b) { this.a = a; this.b = b;}We see a struct with two properties, while V8 sees a pain in the…class.
  • Thats because to execute new Foo(x, y); V8 has to create several hidden classes.V8 creates an empty hidden class for theobjectWhen executing the first line of the Foo, V8 makes transition from hidden class __Foo0 to hidden class __Foo1.Execution of the first line adds the first property into the object,…
  • struct __Foo0 {};When V8 executes the first line, e.g. (creating) assigning the property a, it generates another hidden class, makes so-called transition to a newer version of the __Foo0 hidden class.struct __Foo1 { Type a; //};I intentionally left the Type of the a property unspecified (you might guess that based…
  • So if the hidden classes of all passed objects are the same, V8 caches the call to the corresponding memory location of properties x and y (I might say something wrong here, be alert).

Tags: code, machine code, virtual machine, hidden class, source code

  • If, despite all the other answers, you still want to traditionally include a file in a node.js source file, you can use this: The empty string concatenation is necessary to get the file content as a string and not an object (you can also use if you prefer).
  • The eval() can’t be used inside a function and must be called inside the global scope otherwise no functions or variables will be accessible (i.e. you can’t create a utility function or something like that).
  • Please also note this won’t work with (when you are in strict mode) because functions and variables defined in the imported file can’t be accessed by the code that does the import.
  • Strict mode enforces some rules defined by newer versions of the language standard.

Tags: function, var, var fs, ,

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.