当前位置: 首页 > 软件库 > Web应用开发 > Web框架 >

nestjs-bff

授权协议 MIT License
开发语言 JavaScript
所属分类 Web应用开发、 Web框架
软件类型 开源软件
地区 不详
投 递 者 柯建业
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Nestjs-BFF OVERVIEW

Overview     Frontend     Backend     CLI     DevOps

Status

This library is currently 'on ice' and is no longer being activley maintained at this time. However, it may still server as a useful as a reference to others on how to build a production ready app around the NestJS platform. Also, it is anticiapted that at some indeterminate point in the fututure, the library will be thawed, updated, and work will continue.

If anyone is interested in taking a leading role in the maintenance and update of this library, please contact me to dicsuss.

Overview

NestJS-BFF is a full-stack TypeScript solution, and starter project. It is intended for developers who are looking to fast-track building a strongly typed, enterprise-grade, modern NodeJs application, with supporting tooling.

This implementation uses the BFF pattern, leveraging NestJS as the primary framework for the backend. The frontend example is in Angular, although any client-side Javascript framework can easily be used, including React, or Vue js.

Contents

This is a Mono-repo project containing a Backend, companion CLI, Frontend, and companion NPM packages. Follow the README navigation links for details on each of these. The core infrastructure is contained in NPM packages, so that projects build using this boilerplate can easily benefit from future updates though a simple NPM update command.

Installation & Usage

See the DevOps documentation and folder for instructions and scripts to install, run, and maintain nestjs-bff applications

Key Features

  • Strongly Typed backend, leveraging the power of TypeScript, NestJS and Express
  • DDD style layered architecture with Application Services and composable Domain objects
  • Comprehensive authentication and authorization system in-the-box
  • JWT Authentication for robust and flexible security
  • Social Login with Facebook (complete), Google, and Twitter (under development), using the more secure Authorization Code Grant flow
  • Secured-by-default with 'allow list' approach
  • Flexible Caching leveraging the powerful cache-manager library
  • Repository Pattern in-the-box for simple data-access
  • MongoDB Migrations for easy database seeding and management
  • Winston and Console Logger Service in-the-box
  • Configuration pattern simple and strongly types
  • e2e Testing pattern leveraging Jest

Structure

  • Frontend Frontend Layer example, built with Angular
  • Global Global Layer layer that can be shared between the backend and the frontend
  • Backend Hosting Layer for exposing Application and Domain Services over a multiple transports
  • Backend Application Services Layer for composing Domain Services
  • Backend Domain Services Layer for encapsulating core domain logic
  • Backend Infrastructure Layer packages, for building and supporting the layered architecture

Architecture Overview

Developer Benefits

There are a number of benefits that make NestJs and Angular a very compelling web development stack:

  • Core technologies NestJS and Angular are both versatile and highly compatible frameworks, that provide a great developer experience
  • Consistent technology and development patterns for both frontend and backend development
    • Results in significant increase in development efficiency
    • TypeScript language for both the backend and frontend
    • Strongly type on both the backend and frontend
    • Leverages the Node JavaScript framework for both backend and frontend development
    • Incredibly similar architecture and design patterns
  • Backend framework can be leveraged for other execution contexts, including CLI (example included) or even Desktop
  • Leverages fully open source technology
  • Hosting options are broad, and flexible, with multiple value-options, and broad native cloud hosting support (including Heroku)

Background

NestJS is a fantastic project, and a pleasure to develop with. However, it is a framework by design, and not a complete production-ready web-application solution. Features such as logging, configuration management, data-base migrations, and even authentication need to be learned, assembled, and configured before they can be used.

This project aims to provide an enterprise-ready web-application skeleton, out-of-the-box, and built on top of the nest-js framework.

Notes

  • The Backend can run independently from the CLI
  • The CLI requires the Backend to compile and run
  • The Frontend can run independently, but requires the Backend to be running to complete requests, including for authentication

Contributions

Contributions are not only welcome, but encouraged. Please help make this better! See the Contributions Guide for details.

Attributions

See the Attributions section.

Companion Libraries

This library is part of a collection of companion tools and libraries under the AbleStack umbrella. All of these libraries share the common goal:

Helping small teams and solo-developers build big ideas rapidly and affordably

To achieve these goals, the following principles are applied:

  • Selectively leverage existing open source tools and libraries, where, high quality, open source tools and libraries where possible
    • Curate usage examples, and guidance where available, and create where not available
  • Prioritize technology choices that embrace open source
    • PostgreSQL over MSSQL is an example of this
  • Avoid technology choices that could result in hosting vendor lock-in
    • ApolloGraphQL over AWS Amplify is an example of this
  • Automate wherever possible, from development, through testing, to deployment, monitoring, and maintenance
    • Codegen from strongly types schemas is a good example of this.
  • Where needed, develop high quality, open source tools and libraries to augment and automate existing open source tooling and libraries

Readme Navigation

Further details on each of the systems contained in this project can be found via the following links:

  • 脚手架中,可以执行 nest g mo XXX 创建模块。通过脚手架命令创建的模块,会自动被导入至根模块注册。 注意:项目中的模块都需要导入到根模块中注册一下才能被使用。 共享模块 nest g res boy、nest g res girl 如果希望在 girl 模块中使用 boy 模块,需要先在 boy 模块将其 service 导出 import { Module } from '@nest

  • NestJs中的守卫(guards)概念 文档:https://docs.nestjs.com/guards 守卫是一个使用 @Injectable()装饰器装饰的类,并且实现了CanActivate接口 是一个类似于中间件的类,以前在KOA和EGG中,我们的权限判断都是在中间件中处理的 其实中间件是比较笨拙的,它并不知道调用next()后会执行哪些处理程序 在Nestjs中提供了守卫来作为一项主

  • 介绍 Nest(NestJS)是一个用于构建高效、可扩展的 Node.js 服务器端应用程序的框架。它使用渐进式 JavaScript,用 TypeScript 构建并完全支持 TypeScript(但仍能让开发者用纯 JavaScript 编码),并结合了 OOP(面向对象编程)、FP(功能编程)和 FRP(功能反应式编程)的元素。 Nest 使用了强大的 HTTP 服务器框架,如 Expres

  • nest.js是一个渐进式的Node.js框架,用于构建高效,可靠和可扩展的服务器端应用程序。 # 全局安装 npm i -g @nestjs/cli # 查看版本 nest -V # 创建项目 nest new server # 创建子项目 cd server nest g app admin # 启动监听子项目 nest start -w admin # 创建功能模块 cd serv

 相关资料
  • A collection of Badass modules and utilities to help you level up your NestJS application. Package Description Version Changelog @golevelup/nestjs-common Common types, mixins changelog @golevelup/nest

  • Description The rbac module for Nest. Installation npm i --save nestjs-rbac Quick Start For using RBAC there is need to implement IStorageRbac export interface IStorageRbac { roles: string[]; permis

  • rucken-core-nestjs A simple application demonstrating the basic usage of permissions with NestJS (JWT, Passport, Facebook, Google+, User, Group, Permission) based on Rucken template Screenshots Featur

  • Nest.js 教程 如果喜欢本教程请点击右上角的 star �� ,想订阅本教程请点击右上角 watch �� 如有不解之惑,或是想要更多的详细教程,可以在 New Issues 中写下你的问题或需求。 框架介绍 Nest 是构建高效,可扩展的 Node.js Web 应用程序的框架。它使用现代的 JavaScript 或 TypeScript(保留与纯 JavaScript 的兼容性),并结合

  • testing-nestjs Status A repository to show off to the community methods of testing NestJS including Unit Tests, Integration Tests, E2E Tests, pipes, filters, interceptors, GraphQL, Mongo, TypeORM, and

  • nestjs-query Nestjs-Query is collection of packages to make crud for graphql easier. Why? While working on projects in nestjs it was very easy to get up and running with graphql however, there were ma