Subscribe: Ben Nadel ColdFusion, jQuery, And Web Development Feed @ BenNadel.com
http://www.bennadel.com/index.cfm?dax=blog.rss
Added By: Feedage Forager Feedage Grade A rated
Language: English
Tags:
api  application  ben nadel  ben  error  express middleware  express  middleware  nadel demonstrates  nadel  node ben  node  object  typescript 
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: Ben Nadel ColdFusion, jQuery, And Web Development Feed @ BenNadel.com

Ben Nadel's Web Development and User Experience Feed @ BenNadel.com



Recent blog posts covering JavaScript, User Experience (UX), ColdFusion, Node, and other topics



Last Build Date: Tue, 23 May 2017 14:53:51 EST

Copyright: Copyright 2017 Ben Nadel
 



Understanding The 4 Rules Of Simple Design By Corey Haines

Mon, 22 May 2017 08:02:00 EST

Ben Nadel reviews Understanding The 4 Rules Of Simple Design by Corey Haines. In the book, Corey shares the insights that he's gained from helping thousands of developers as a facilitator at hundreds of code retreats....



Considering When To Throw Errors, Why To Chain Them, And How To Report Them To Users

Sun, 21 May 2017 16:28:00 EST

Ben Nadel writes up the results of his research on error handling in web application development - when to throw errors, why to chain them, and how to report them back to users....



Exceptions Are For Exceptional Circumstances And Thoughts On Cross-Layer Coupling

Thu, 18 May 2017 07:30:00 EST

Ben Nadel considers the phrase, "exceptions are for exceptional circumstances" and how this outlook affects cross-layer coupling in your application....



Sequelize - Validation Error: Validation Not Failed

Thu, 18 May 2017 06:06:00 EST

Ben Nadel clarifies the somewhat confusing Sequelize error: "Validation error: Validation not failed". This is caused by a violation of the "not" rule on your Model Schema....



Centralizing Distributed Locks In Order To Provide Application-Oriented Semantics Around Locking In Node

Tue, 16 May 2017 06:53:00 EST

Ben Nadel looks at how to centralize distributed locks in order to provide application-oriented semantics on top of the locking implementation. This creates more consistent, insightful, and easier-to-consume locks....



Inverse Type Guards Work In TypeScript

Sun, 14 May 2017 08:26:00 EST

Ben Nadel demonstrates that inverse Type Guards work in TypeScript, allowing the code after the Type Guard block to make certain assumptions about the values at hand....



Experimenting With ts-node And Using TypeScript In Node On The Server

Sat, 13 May 2017 14:14:00 EST

Ben Nadel experiments with the ts-node executable, which allows TypeScript to be run seamlessly in a Node environment. This allows you to quickly and easily build Node apps, included Express apps, using type annotations and other transpiled features....



Chalk Styles Can Be Passed Around As Naked Function References In Node

Fri, 12 May 2017 19:17:00 EST

Ben Nadel demonstrates that the style methods, of the npm module - Chalk - can be passed around as naked Function references that retain their composite styling in the consuming context in Node....



Exceptions Are For Programmers, Error Responses Are For Users

Wed, 10 May 2017 07:52:00 EST

Ben Nadel explains that "Exceptions" are for programmers and "Error Responses" are for users - a separation of concerns that was codified in an "ah ha!" moment provided by Mark Seemann. This separation of concerns creates valuable insight into the application and allows for hooks into features such as Internationalization (i18n)....



Experiment: Putting DEBUG Comments In Your Sequelize-Generated Queries In Node

Tue, 9 May 2017 08:39:00 EST

Ben Nadel experiments with monkey-patching the Sequelize instance (in a safe way) in order to be able to prepend DEBUG SQL comments to ORM-generated SELECT statements. This makes the general_log and slow_log performance much easier to debug, from an administrative standpoint....



Thoughts On Defining Coroutines As Class Methods In Node And TypeScript

Sun, 7 May 2017 10:58:00 EST

Ben Nadel considers Coroutines (ie, wrapped Generator function execution) and how Coroutines can be defined as class methods in Node and TypeScript. There seem to be several possible approaches, none of which are perfect....



SyntaxError: Unexpected Strict Mode Reserved Word Using Yield In Generators

Sat, 6 May 2017 11:43:00 EST

Ben Nadel looks at the Node error, "SyntaxError: Unexpected strict mode reserved word", and why low operator precedence causes the "yield" keyword to be associated with the "wrong" portion of a given JavaScript expression....



Using Proxy Objects To Dynamically Change The THIS Binding Within A Generator In Node

Sat, 6 May 2017 08:56:00 EST

Ben Nadel experiments with using an ES6 Proxy object to dynamically change the executing context and THIS binding of a Generator object, mid-execution, in Node....



Changing The THIS Binding And Execution Context Of A Generator In Node

Fri, 5 May 2017 08:27:00 EST

Ben Nadel demonstrates how to change the THIS binding and execution context of a Generator object in Node. And, as a fun experiment, looks at altering the prototype chain of the Generator after it's been created....



Manually Invoking Express Middleware Functions

Wed, 3 May 2017 07:16:00 EST

Ben Nadel experiments with invoking Express middleware functions manually from within a route handler. While not practical in a traditional Express application, such an approach would make existing Express middleware consumable in a non-traditional context....



Using Import = Require Syntax With TypeScript 2.2 In Angular 2.4.9

Mon, 1 May 2017 07:28:00 EST

Ben Nadel looks at the "import = require" syntax in TypeScript 2; and, how it can be used to easily consume non-TypeScript files like "lodash" in a TypeScript application....



Understanding The Query Plan "Explained" By the Find Plugin In PouchDB 6.2.0

Thu, 27 Apr 2017 09:20:00 EST

Ben Nadel looks at the query planning output provided by the Mango .find() plugin in PouchDB 6.2.0; and sheds light on how this information can offer insight into your query performance....



Google Chrome Will Automatically Retry Requests On Certain Error Responses

Tue, 25 Apr 2017 06:51:00 EST

Ben Nadel demonstrates that the Google Chrome Browser performs some automatic retries depending on the type of response that it gets back from the Node server. But, that this behavior is disabled if the Dev Tools are opened....



Monkey-Patching The Mango .find() Plugin To Use .allDocs() In PouchDB 6.2.0

Mon, 24 Apr 2017 08:04:00 EST

Ben Nadel demonstrates how to monkey-patch the .find() plugin in PouchDB 6.2.0 in order to route some $in-based queries to the highly performant .allDocs() method....



Experimenting With The Mango .find() API In PouchDB 6.2.0

Sun, 23 Apr 2017 10:31:00 EST

Ben Nadel looks at the recent release of PouchDB 6.2.0 that includes the Mango .find() plugin that simplifies the creation of secondary indices as well as the subsequent consumption of various indices within a query....



Method Binding Is An Implicit Part Of Your API Contract (Whether You Like It Or Not)

Thu, 20 Apr 2017 08:15:00 EST

Ben Nadel looks at the way object structure and method binding affects the way your object API can be consumed; and, concludes that your object structure and method binding becomes an implicit part of your API, whether you like it or not....



As A Node Novice, I Don't Understand Why Uncaught Exceptions Are So Dangerous

Wed, 19 Apr 2017 08:03:00 EST

Ben Nadel - a Node novice / noob - considers "uncaught exceptions" in Node, and wonders why they are considered to be qualitatively so much more dangerous than "caught exceptions."...



The User Experience (UX) Of Waiting And The Affordance Of Lines / Queues

Tue, 18 Apr 2017 07:46:00 EST

Ben Nadel reflects on the user experience (UX) of waiting on line and the affordance of lines (and queues) as granted by implicit social contracts and common mores....



The JavaScript "copy" Event - Fun With InVision Freehand Shapes

Sun, 16 Apr 2017 10:32:00 EST

Ben Nadel hacks the InVision Freehand event system as a way to store and retrieve Shape data in an external storage system....



Defining Functions With Properties Using TypeScript Declaration Merging In Angular 2.4.9

Sat, 15 Apr 2017 09:19:00 EST

Ben Nadel looks at how TypeScript uses "Declaration Merging" to define invocable Functions that also expose an API surface area (ie, an object with properties)....



Wrapping The Zendesk Web Widget In A Promise-Based Zendesk Service In Angular 2.4.9

Fri, 14 Apr 2017 08:02:00 EST

Ben Nadel looks at wrapping the Zendesk zEmbed object inside of a Promise-based Service in Angular 2. Not only does this create a simplified API, it completely hides the complexity of the race condition presented by the .show() and .hide() methods....



The Zendesk Web Widget Appears To Have A Small Hide / Show Race Condition

Thu, 13 Apr 2017 07:33:00 EST

Ben Nadel consistently demonstrates an unknown race condition in the Zendesk web widget API; and, provides a work-around that debounces calls to the zEmbed show() and hide() API methods....



An Express Learning Experiment - Porting FW/1 Ideas Into A Node Application

Wed, 12 Apr 2017 09:33:00 EST

Ben Nadel attempts to learn more about Express middleware by porting FW/1 (framework one) inspired concepts over to Node as middleware that sits on top of Express route management....



Express Middleware Can Be Arbitrarily Nested Within A Route In Node

Fri, 7 Apr 2017 08:11:00 EST

Ben Nadel demonstrates that middleware can be arbitrarily nested within an Express route definition in Node. This is because Express will flatten the middleware arguments before it stores them internally....



Tracking Static Asset Request Duration In Express And Node

Thu, 6 Apr 2017 08:34:00 EST

Ben Nadel looks at how you might track the request duration of static files served-up by an Express app using Node. The trick is to just start the time-recording early and then worry about differentiating the request type at the end....