Here's how you could create custom error classes in Node.js using latest ES6 / ES2015 syntax.
I've tried to make it as lean and unobtrusive as possible.
errors/ApplicationError.js
| // place in pages/sitemap.xml.tsx | |
| const fs = require('fs') | |
| import { endpoint } from '../config' | |
| const Sitemap = () => null | |
| Sitemap.getInitialProps = async ({ res }) => { | |
| if (!res) return {} | |
| const folder = 'pages' | |
| res.setHeader('content-type', 'application/xml') |
| const { InMemoryLRUCache } = require("apollo-server-caching"); | |
| const DataLoader = require("dataloader"); | |
| class SQLCache { | |
| constructor(cache = new InMemoryLRUCache(), knex) { | |
| this.cache = cache; | |
| this.loader = new DataLoader(queries => | |
| Promise.all(queries.map(query => knexInstance.raw(query))) | |
| ); | |
| } |
From within the parent repo do
git submodule add git@bitbucket.org:iracooke/transcriptomes.git/wiki wiki
git commit -m "Adding wiki as submodule"
git pushMaking changes to the wiki and to the parent require separate git commit commands.
| echo "Creating an SSH key for you..." | |
| ssh-keygen -t rsa | |
| echo "Please add this public key to Github \n" | |
| echo "https://github.com/account/ssh \n" | |
| read -p "Press [Enter] key after this..." | |
| echo "Installing xcode-stuff" | |
| xcode-select --install |
| Secure sessions are easy, but it's not very well documented, so I'm changing that. | |
| Here's a recipe for secure sessions in Node.js when NginX is used as an SSL proxy: | |
| The desired configuration for using NginX as an SSL proxy is to offload SSL processing | |
| and to put a hardened web server in front of your Node.js application, like: | |
| [NODE.JS APP] <- HTTP -> [NginX] <- HTTPS -> [CLIENT] | |
| To do this, here's what you need to do: |
| function translateError(msg) { | |
| var newErr = new Error(msg); // placed here to get correct stack | |
| return e => { | |
| newErr.originalError = e; | |
| throw newErr; | |
| } | |
| } | |
| async function asyncTask() { | |
| const user = await UserModel.findById(1).catch(translateError('No user found')) |
| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <title>Duplicate a select list using jQuery</title> | |
| <script src="http://code.jquery.com/jquery-1.6.4.min.js"></script> | |
| <script src="selectScript.js"></script> | |
| </head> | |
| <body> | |
| <div id="d1"> |
| /*jslint node: true */ | |
| "use strict"; | |
| var express = require("express"), | |
| consolidate = require("consolidate"), | |
| Handlebars = require("handlebars"), | |
| fs = require("fs"); | |
| var app = express(); |