Modern, fast, powerful Node.js web framework in TypeScript based on Nest with a GraphQL API and a connection to MongoDB (or other databases).
The lenne.tech nest server can be included as an npm package (npm i @lenne.tech/nest-server
) or used directly as a
project (git clone https://github.com/lenneTech/nest-server.git
).
In combination with Angular (see lenne.Tech Angular example incl. ng-base) the Nest Server is an ideal basis for your next project.
The easiest way to set up your own server based on the lenne.Tech Nest Server is to use the lenne.Tech Nest Server starter kit via CLI:
$ npm install -g @lenne.tech/cli
$ lt server create <ServerName>
$ cd <ServerName>
The lenne.Tech Nest Server is based on the Nest framework and can either be used and extended as a boilerplate (git clone) or integrated as a module (npm package).
Since the server is based on Nest, you can find all information about extending your server in the documentation of Nest.
We use Mongoose Module from nestjs. (https://docs.nestjs.com/techniques/mongodb)
To create a new Module with model, inputs, resolver and service you can use the CLI:
$ lt server module <ModuleName>
We are currently working on a documentation of the extensions and auxiliary classes that the lenne.Tech Nest Server contains. As long as this is not yet available, have a look at the source code. There you will find a lot of things that will help you to extend your server, such as:
- GraphQL scalars
- Filter and pagination
- Decorators for restrictions and roles
- Authorisation handling
- Ready to use user module
- Common helpers and helpers for tests
- ...
# development
$ npm start
# watch mode
$ npm run start:dev
# production mode
$ npm run start:prod
# unit tests
$ npm test
# e2e tests
$ npm run test:e2e
# test coverage
$ npm run test:cov
Configuration for testing:
Node interpreter: /user/local/bin/node
Jest package: FULL_PATH_TO_PROJECT_DIR/node_modules/jest
Working directory: FULL_PATH_TO_PROJECT_DIR
Jest options: --config jest-e2e.json --forceExit
Configuration for debugging is:
Node interpreter: /user/local/bin/node
Node parameters: node_modules/@nestjs/cli/bin/nest.js start --debug --watch
Working directory: FULL_PATH_TO_PROJECT_DIR
JavaScript file: src/main.ts
see Debug.run.xml
Via yalc the NestJS Server can be linked into the project.
In NestJS Server run npm run watch
to watch for changes and build yalc package.
Project use following scripts (via package.json
):
npm run link:nest-server
(foryalc add @lenne.tech/nest-server && yalc link @lenne.tech/nest-server && npm install
)npm run unlink:nest-server
(foryalc remove @lenne.tech/nest-server && npm install
)
The API and developer documentation can automatically be generated.
# generate and serve documentation
$ npm run docs
Many thanks to the developers of Nest and all the developers whose packages are used here.
MIT - see LICENSE