The following guide will show you how to deploy a simple microservice written in JavaScript using 𝚫 now.
It uses Open Source tools that are widely available, tested and understood:
- Node.JS
- NPM
- Express
The following guide will show you how to deploy a simple microservice written in JavaScript using 𝚫 now.
It uses Open Source tools that are widely available, tested and understood:
A maintainable application architecture requires that the UI only contain the rendering logic and execute queries and mutations against the underlying data model on the server. A maintainable architecture must not contain any logic for composing "app state" on the client as that would necessarily embed business logic in the client. App state should be persisted to the database and the client projection of it should be composed in the mid tier, and refreshed as mutations occur on the server (and after network interruption) for a highly interactive, realtime UX.
With GraphQL we are able to define an easy-to-change application-level data schema on the server that captures the types and relationships in our data, and wiring it to data sources via resolvers that leverage our db's own query language (or data-oriented, uniform service APIs) to resolve client-specified "queries" and "mutations" against the schema.
We use GraphQL to dyn
Install the React Developer Tools Chrome Extension.
Go to the egghead website, i.e. Getting Started with Redux
Click View -> Developer -> Javascript Console
, then the React
tab, then the <NextUpLessonList ...>
tag.
Click back to the Console
tab, then run:
import Relay from 'real-react-relay'; | |
export class Mutation extends Relay.Mutation { | |
_resolveProps(props) { | |
this.props = props; | |
} | |
} | |
export class MockStore { | |
reset() { |
(function() { | |
'use strict'; | |
/** | |
* Formats a string and returns a valid IBAN account string | |
* @param {string} input example: 'ES0123456789012345678901' | |
* @return {string} output example: 'ES01 2345 6789 0123 4567 8901' | |
* @example <caption>{{'ES0123456789012345678901' | IBAN}}</caption> | |
*/ | |
angular.module('app').filter('IBAN', () => iban => iban ? iban.replace(/[^\dA-Z]/g, '').replace(/(.{4})/g, '$1 ').trim() : ''); |
import { MongoClient } from 'mongodb'; | |
import promisify from 'es6-promisify'; | |
let _connection; | |
const connect = () => { | |
if (!process.env.MONGO_CONNECTION_STRING) { | |
throw new Error(`Environment variable MONGO_CONNECTION_STRING must be set to use API.`); | |
} |
This document details how I setup LE on my server. Firstly, install the client as described on http://letsencrypt.readthedocs.org/en/latest/using.html and make sure you can execute it. I put it in /root/letsencrypt
.
As it is not possible to change the ports used for the standalone
authenticator and I already have a nginx running on port 80/443, I opted to use the webroot
method for each of my domains (note that LE does not issue wildcard certificates by design, so you probably want to get a cert for www.example.com
and example.com
).
For this, I placed config files into etc/letsencrypt/configs
, named after <domain>.conf
. The files are simple:
import React from 'react'; | |
import { container } from 'redux-relay'; | |
@container({ | |
variablesFromState: (state) => ({myVariable: state.myState}) | |
fragments: { | |
Relay.QL` | |
viewer { |