nodejs-backend-for-frontend - A Node.js Backend For Frontend (BFF) using Express

  •        8

In this code pattern, you will create a Backend for Frontend (BFF) web service using Express in Node.js, matching a RESTful API documented in Swagger. A BFF can be used to elegantly expose complex backend systems to multiple client-facing platforms, such as iOS and the web, without building a monolithic API that attempts to serve all clients equally. Different types of clients require different types of user experiences, and having a backend API tightly coupled to each specific user experience actually makes for a much more loosely coupled system overall. This pattern helps frontend teams iterate on features faster by giving them more control over the APIs they interact with, without affecting the user experience or development team driving a sister frontend.

https://console.bluemix.net/developer/appservice/starter-kits/nodejs-bff-example-with-expressjs
https://github.com/IBM/nodejs-backend-for-frontend

Dependencies:

appmetrics-dash : ^4.0.0
appmetrics-prometheus : ^2.0.0
appmetrics-zipkin : ^1.0.4
body-parser : ^1.17.2
express : ^4.15.3
log4js : ^3.0.5
ibm-cloud-env : ^0

Tags
Implementation
License
Platform

   




Related Projects

Theia - Cloud & desktop IDE framework implemented in TypeScript

  •    TypeScript

Theia is an extensible platform to develop full-fledged multi-language Cloud & Desktop IDE-like products with state-of-the-art web technologies. Theia is entirely written in TypeScript and clearly separates the UI frontend from the backend. The frontend runs in modern browsers or as a Desktop app using Electron with either local or remote (cloud) backends.

microgateway - IBM API Connect Microgateway framework, built on Node.js & Nginx

  •    Javascript

The role of a Gateway in an API architecture is to protect, enrich and control access to API services. These sets of capabilities are often related to security and rate limiting, but it also includes the ability to do deeper message inspection. For example, you may want to insure that the message received is properly formed JSON, XML, or data following your own specific format. In addition, the Gateway can modify the payload or transform it to meet old or new interfaces for the API backend. Finally, the Gateway can invoke multiple services and aggregate responses from multiple API backends.The Microgateway is the foundation for all of those things. It is optimized to perform security, rate limiting, and much more complex packet processing through a highly flexible flow-engine.

webapp.rs - A web application completely written in Rust.

  •    Rust

Target of this project is to write a complete web application including backend and frontend within Rust. The app consist of a frontend and a backend. For getting started with hacking, the backend can tested via make run-backend, whereas the frontend can be tested with make run-frontend. You can adapt the application configuration within Config.toml if needed.

NuclearJS - Reactive Flux built with ImmutableJS data structures. Framework agnostic.

  •    Javascript

NuclearJS is a traditional Flux architecture built with ImmutableJS data structures. The goal of NuclearJS is to provide a way to model data that is easy to reason about and decouple at very large scale. The framework should be implemented functionally wherever appropriate. This reduces incidental complexity and pairs well with Immutability.

Middleman - Hand-crafted frontend development

  •    Ruby

Middleman is a static site generator using all the shortcuts and tools in modern web development. These days, many websites are built with an API in mind. Rather than package the frontend and the backend together, both can be built and deployed independently using the public API to pull data from the backend and display it on the frontend. Static websites are incredibly fast and require very little RAM. A front-end built to stand-alone can be deployed directly to the cloud or a CDN. Many designers and developers simply deliver static HTML/JS/CSS to their clients.


node-interview - How to pass the Node.js interview of ElemeFE.

  •    HTML

We were looking for senior backend developer with Node.js. And, this repo is the interview catalog (not just questions & answers) about it, and it shows you how to pass the Node.js interview of ElemeFE.We had a lot of interviews about Node.js & full-stack in 2016. We found there are many developers came from frontend, and most of them had leaky knowledge of backend system. Thus we found it's difficult to got senior Node.js developer about backend (not full-stack).

subway - ABANDONED - A web based IRC client

  •    Javascript

Subway is not currently functional and not under active development. While the plan is to finish this project some point in the future, currently the maintainer strongly suggests taking a look at The Lounge. Subway is a web-based IRC client with a multi-user backend and a JavaScript-heavy UI. Frontend/backend communication is done with websockets (or best available fallback where not available). The backend supports connection persistence and optional logging when the browser disconnects.

osrm-backend - Open Source Routing Machine - C++ backend

  •    C++

High performance routing engine written in C++14 designed to run on OpenStreetMap data. To quickly try OSRM use our demo server which comes with both the backend and a frontend on top.

ownphotos - Self hosted Google Photos clone

  •    Jupyter

Currently the project is in very early stages, so run it only for the sake of checking it out. Ownphotos comes with separate backend and frontend servers. The backend serves the restful API, and the frontend serves, well, the frontend. The easiest way to do it is using Docker.

ApacheDS - Apache Directory Project

  •    Java

ApacheDS is an embeddable directory server entirely written in Java, which has been certified LDAPv3 compatible by the Open Group. Besides LDAP it supports Kerberos 5 and the Change Password Protocol. It has been designed to introduce triggers, stored procedures, queues and views to the world of LDAP which has lacked these rich constructs.

WebIDE - Coding WebIDE Community Edition

  •    Shell

Coding WebIDE(https://ide.coding.net) is a cloud-based IDE developed by Coding Team.You can create your own workspace and develop projects here.WebIDE works fine with Git. You can use Coding、GitHub、BitBucket、GitLab as your Git repository. Workspaces are powered by Docker Ubuntu containers.The development environment can be saved and shared to your team member. Please submit issues to corresponding projects, that'll help us make issues tracking easier so that we can provide timely help to you. Submit frontend issues at WebIDE-Frontend and backend issues at WebIDE-Backend.

Rusthon - multi-lang transpiler, compiler frontend.

  •    Python

Easily mix multiple languages, frontends, backends, compilers, and transpilers inside markdown files. Markdown is the container format for your multi-language application that can contain: server backend logic and config files, and frontend javascript with html and css, all in a single markdown file. Rusthon compiles the markdown into tar files for release, or runs it for testing. The integrated Python transpiler targets multiple backend languages, like: JavaScript and C++. The JavaScript backend implements most of the dynamic and some builtin functions of Python. The C++ backend is less dynamic and uses an extended static type syntax based on Go, Rust and C++. The other backends are experimental.

starhackit - StarHackIt: Preact/React Native/Node fullstack starter kit with authentication and authorisation, data backed by SQL

  •    Javascript

The frontend and the backend are two separate projects with their own set of dependencies. One can use the frontend with another existing backend, or use the backend with another frontend stack.

heroku-cra-node - How to use create-react-app with a custom Node server on Heroku

  •    Javascript

A minimal example of using a Node backend (server for API, proxy, & routing) with a React frontend. Includes a minimal Node Cluster implementation to parallelize the single-threaded Node process across the available CPU cores.

rendora - dynamic server-side rendering using headless Chrome to effortlessly solve the SEO problem for modern javascript websites

  •    Go

Rendora can be seen as a reverse HTTP proxy server sitting between your backend server (e.g. Node.js/Express.js, Python/Django, etc...) and potentially your frontend proxy server (e.g. nginx, traefik, apache, etc...) or even directly to the outside world that does actually nothing but transporting requests and responses as they are except when it detects whitelisted requests according to the config. In that case, Rendora instructs a headless Chrome instance to request and render the corresponding page and then return the server-side rendered page back to the client (i.e. the frontend proxy server or the outside world). This simple functionality makes Rendora a powerful dynamic renderer without actually changing anything in both frontend and backend code. Dynamic rendering means that the server provides server-side rendered HTML to web crawlers such as GoogleBot and BingBot and at the same time provides the typical initial HTML to normal users in order to be rendered at the client side. Dynamic rendering is meant to improve SEO for websites written in modern javascript frameworks like React, Vue, Angular, etc...

Bebop - Simple discussion board / forum web application.

  •    Go

Bebop is a simple discussion board / forum web application.Create a new empty database (MySQL оr PostgreSQL) that will be used as a data store and a database user with all privileges granted on this database.

S3 - Node.js implementation of a server handling the Amazon S3 protocol

  •    Javascript

CloudServer (formerly S3 Server) is an open-source Amazon S3-compatible object storage server that is part of Zenko, Scality’s Open Source Multi-Cloud Data Controller.CloudServer provides a single AWS S3 API interface to access multiple backend data storage both on-premise or public in the cloud.

personality-insights-nodejs - :bar_chart: Sample Nodejs Application for the IBM Watson Personality Insights Service

  •    Javascript

The IBM Watson Personality Insights service uses linguistic analysis to extract cognitive and social characteristics from input text such as email, text messages, tweets, forum posts, and more. By deriving cognitive and social preferences, the service helps users to understand, connect to, and communicate with other people on a more personalized level. Open the .env file and add the service credentials that you obtained in the previous step.

appjs-deskshell - SDK to build desktop apps using HTML5/CSS/JS for frontend and server script for backend

  •    NSIS

Deskshell is a SDK that provides a shell (as in egg shell) around web applications so that they can run on the desktop. It gives you a modern HTML5 / CSS / JS frontend for your user interface, but then allows full backend functionality written in popular server scripting languages that anyone can pick up like node or php (more choices coming soon). This makes it possible to read and write directly to disk, access databases, communicate with servers and solve the task at hand. We are a very diverse community that welcomes people who have english as a second language. We are open and welcoming to new people both experienced super hackers and newbies alike. We would love this project to be your first accepted commit to an open source project. There are also many things that are not strictly coding that you can do, maybe you can write an example app, improve our documentation, answer questions on the forums or write a tutorial. Mostly just have fun making apps and when you see something that could be better have a go at improving it and then share it with the community.