75 lines
1.8 KiB
Markdown
75 lines
1.8 KiB
Markdown
# 
|
|
|
|
[](https://travis-ci.org/anishkny/node-express-realworld-example-app)
|
|
|
|
> ### Example Node (Express + Prisma) codebase containing real world examples (CRUD, auth, advanced patterns, etc) that adheres to the [RealWorld](https://github.com/gothinkster/realworld-example-apps) API spec.
|
|
|
|
<a href="https://thinkster.io/tutorials/node-json-api" target="_blank"><img width="454" src="https://raw.githubusercontent.com/gothinkster/realworld/master/media/learn-btn-hr.png" /></a>
|
|
|
|
## Getting Started
|
|
|
|
### Prerequisites
|
|
|
|
Run the following command to install dependencies:
|
|
|
|
```shell
|
|
npm install
|
|
```
|
|
|
|
### Environment variables
|
|
|
|
This project depends on some environment variables.
|
|
If you are running this project locally, create a `.env` file at the root for these variables.
|
|
Your host provider should included a feature to set them there directly to avoid exposing them.
|
|
|
|
Here are the required ones:
|
|
|
|
```
|
|
DATABASE_URL=
|
|
JWT_SECRET=
|
|
NODE_ENV=production
|
|
```
|
|
|
|
### Generate your Prisma client
|
|
|
|
Run the following command to generate the Prisma Client which will include types based on your database schema:
|
|
|
|
```shell
|
|
npx prisma generate
|
|
```
|
|
|
|
### Apply any SQL migration script
|
|
|
|
Run the following command to create/update your database based on existing sql migration scripts:
|
|
|
|
```shell
|
|
npx prisma migrate deploy
|
|
```
|
|
|
|
### Run the project
|
|
|
|
Run the following command to run the project:
|
|
|
|
```shell
|
|
npx nx serve api
|
|
```
|
|
|
|
### Seed the database
|
|
|
|
The project includes a seed script to populate the database:
|
|
|
|
```shell
|
|
npx prisma db seed
|
|
```
|
|
|
|
## Deploy on a remote server
|
|
|
|
Run the following command to:
|
|
- install dependencies
|
|
- apply any new migration sql scripts
|
|
- run the server
|
|
|
|
```shell
|
|
npm ci && npx prisma migrate deploy && node dist/api/main.js
|
|
```
|