-
Notifications
You must be signed in to change notification settings - Fork 0
02 Express
JP Barbosa edited this page Apr 17, 2021
·
2 revisions
yarn add express cors dotenv
yarn add @types/express @types/corscode ./.env.examplePORT=4000cp ./.env.example ./.envmkdir ./src/routes
code ./src/routes/articles.tsimport { Router } from 'express';
import { articlesController } from '../controllers/articles';
export const articlesRoutes = (router: Router) => {
const { findAll, findOne, create, update, remove } = articlesController();
router.get('/articles', findAll);
router.get('/articles/:id', findOne);
router.post('/articles', create);
router.put('/articles/:id', update);
router.delete('/articles/:id', remove);
return router;
};mkdir ./src/controllers
code ./src/controllers/records.tsimport { Request, Response } from 'express';
export const recordsController = () => {
const findAll = async (req: Request, res: Response) => {
// return all records
res.send('all records will be returned');
};
const findOne = async (req: Request, res: Response) => {
// return one record by id
};
const create = async (req: Request, res: Response) => {
// create a new record
};
const update = async (req: Request, res: Response) => {
// update a record by a given id
};
const remove = async (req: Request, res: Response) => {
// delete a record by a given id
};
return { findAll, findOne, create, update, remove };
};code ./src/controllers/articles.tsimport { recordsController } from './records';
export const articlesController = () => {
return recordsController();
}code ./src/app.tsimport express from 'express';
import cors from 'cors';
import { articlesRoutes } from './routes/articles';
export const app = async (port: number) => {
// create and setup express app
const app = express();
app.use(express.json());
app.use(cors());
app.set('trust proxy', 1); // required for Heroku
const router = express.Router();
app.use(articlesRoutes(router));
// start express server
app.listen(port);
};code ./src/index.tsimport { config as configDotenv } from 'dotenv';
import { app } from './app';
configDotenv();
const port = parseInt(process.env.PORT);
const run = async () => {
await app(port);
};
run();yarn devcurl http://localhost:4000/articles
# all records will be returnedgit add .
git commit -m "Express"