Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/npm-packages-collection/generic-nodejs-express-api
Boilerplate project that provides a basic setup for building RESTful APIs using Node.js and Express. It includes several utilities and configurations to help you get started quickly. Additionally, this project runs both a frontend and an API server.
https://github.com/npm-packages-collection/generic-nodejs-express-api
api boilerplate express nodejs npm server
Last synced: 2 months ago
JSON representation
Boilerplate project that provides a basic setup for building RESTful APIs using Node.js and Express. It includes several utilities and configurations to help you get started quickly. Additionally, this project runs both a frontend and an API server.
- Host: GitHub
- URL: https://github.com/npm-packages-collection/generic-nodejs-express-api
- Owner: npm-packages-collection
- License: cc-by-sa-4.0
- Created: 2024-08-12T18:44:33.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-09-11T12:11:14.000Z (4 months ago)
- Last Synced: 2024-09-28T09:47:18.898Z (4 months ago)
- Topics: api, boilerplate, express, nodejs, npm, server
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/generic-nodejs-express-api
- Size: 337 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Generic Node.js Express API
Welcome to the Generic Node.js Express API repository! This repository contains the code and documentation for a generic Express API built using Node.js, as well as a frontend server.
### Quick Start
> [!TIP]
> Create a project from scratch
```
npx generic-nodejs-express-api my-awesome-api-project
```> [!TIP]
> Add it to an existing project
```
npm i generic-nodejs-express-api
```## Table of Contents
- [Introduction](#introduction)
- [Installation](#installation)
- [Usage](#usage)
- [Development](#development)
- [Contributing](#contributing)
- [License](#license)## Introduction
The Generic Node.js Express API is a template project that provides a basic setup for building RESTful APIs using Node.js and Express. It includes several utilities and configurations to help you get started quickly. Additionally, this project runs both a frontend and an API server. The frontend is accessible at `localhost`, and the API is available at `api.localhost`.
| Front End | API |
|--|--|
| ![frontend](https://github.com/user-attachments/assets/f55ce564-22a2-48f3-b44f-ff4aff5b4edf)| ![api](https://github.com/user-attachments/assets/2e96d3ff-8e9d-48b6-be19-4486fd757643)|
| localhost | api.localhost |
| [dmeo frontend](https://generic-nodejs-express-api-442d639bd451.herokuapp.com/) | [demo api](https://api.generic-nodejs-express-api-442d639bd451.herokuapp.com) |## Installation
### NPX
> RUn it as an NPX```bash
npx generic-nodejs-express-api my-awesome-api-project
```To set up the Generic Node.js Express API, follow these steps:
1. Clone this repository to your local machine:
```bash
git clone [email protected]:npm-packages-collection/generic-nodejs-express-api.git
```
2. Navigate into the project directory:
```bash
cd generic-nodejs-express-api
```
3. Install the required dependencies:
```bash
npm install
```
4. (Optional) Set up HTTPS certificates:
```bash
sudo npm run certs
```## Usage
To start the API server, use one of the following commands depending on your environment:
- **Development:**
```bash
npm run dev
```- **Production:**
```bash
npm run start
```You can also run the server with HTTPS enabled:
- **Development with HTTPS:**
```bash
npm run dev:https
```- **Production with HTTPS:**
```bash
npm run prod:https
```## Development
### Scripts
- **Reset dependencies:**
```bash
npm run reset
```
This command removes `node_modules` and `package-lock.json` and reinstalls dependencies.- **Generate certificates:**
```bash
sudo npm run certs
```
This command will:1. Create a certs directory (if it doesn't already exist).
2. Generate a self-signed SSL certificate (`selfsigned.crt`) and private key (`selfsigned.key`) in the certs directory for HTTPS development.
3. Set appropriate permissions for the generated files.
4. Base64-encode the certificate and key and store them as environment variables (`APP_CRT` and `APP_KEY`) in the `.env` file.
5. Set the application port (APP_PORT=3000) in the `.env` file.
6. Clean up by removing the certs directory after the environment variables have been set.### Environment Variables
Create a `.env` file in the root directory and add your environment-specific variables, such as API keys and database URLs.
### Testing
The project uses Mocha and Chai for testing. To run tests, use:
```bash
npm test
```## Contributing
Contributions are welcome! If you have any ideas, suggestions, or bug reports, please open an issue or submit a pull request. Ensure that you follow the project's contribution guidelines.
## License
This project is licensed under the ISC License.
### Environment Variables
Create a `.env` file in the root directory and add your environment-specific variables, such as API keys and database URLs.
### Testing
The project uses Mocha and Chai for testing. To run tests, use:
```bash
npm test
```## Contributing
Contributions are welcome! If you have any ideas, suggestions, or bug reports, please open an issue or submit a pull request. Ensure that you follow the project's contribution guidelines.
## License
This project is licensed under the ISC License.