Express.js
01. Getting start
## ------------------| Create package.json
npm init -f
## ------------------| Install dependencies
### Install app directory and save it in the dependencies list
npm install express cors nodemon dotenv
### Install temporarily and not add it to the dependencies list
npm install express cors nodemon dotenv --no-save
## ------------------| Changes on package.json
"scripts": {
"start": "nodemon src/index.js"
}
## ------------------| Create .gitignore file
/node_modules
.env
/.pnp
.pnp.js
/coverage
/build
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*
## ------------------| One Rule to Rule Them All
npx express-generator -f --git
index.js
const express = require('express')
const cors = require('cors')
const app = express()
const port = 3000
// Loads environment variables from a .env file [to use process.env.NAME]
require('dotenv').config()
// Middlewares [app.use(<a function>);]
app.use(cors());
// Register Routes
app.get('/api/v1/test', (req, res) => {
res.send('Hello h4rithd.com')
})
app.listen(port, () => {
console.log(`App listening on port ${port}`)
})
02. Register Routes
## ------------------| For GET Request
### [text/html]
app.get('/api/v1/test', (req, res) => {
res.send('Hello h4rithd.com')
})
### [application/json]
app.get('/api/v1/json', (req, res) => {
res.json({
message: "Hello h4rithd.com"
})
})
## ------------------| For POST Request
app.post('/api/v1/test', (req, res) => {
res.send('Hello h4rithd.com')
})
## ------------------| For PUT Request
app.put('/api/v1/test', (req, res) => {
res.send('Hello h4rithd.com')
})
## ------------------| For POST Request
app.post('/api/v1/test', (req, res) => {
res.send('Hello h4rithd.com')
})
03. MongoDB
03.1 Getting started
## ------------------| Install dependencies
npm install mongoose
Connect to database
const mongoose = require('mongoose');
mongoose.connect('mongodb//<username>:<password>@localhost/my_database').then(() => {
app.listen(port, () => {
console.log(`App listening on port ${port}`)
})
});
03.2 Insert / Update / Delete
Insert data to database [Basic]
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const Item = new Schema({
item: String,
});
mongoose.model("Item", Item);
app.post('/items', async (req, res) => {
const item = req.body;
const ItemModel = mongoose.model("Item");
const myItem = new ItemModel(item);
const createdItem = await myItem.save(); // Save data to database
console.log(createdItem);
res.send('Hello h4rithd.com');
})
Insert data to database [Structured]
## ------------------| src/index.js
const mongoose = require('mongoose');
const express = require('express')
const cors = require('cors')
const app = express()
const port = 3000
require('./models/item');
app.use(cors());
app.use(express.json())
app.post('/items', require("./route/insertItem"));
mongoose.connect('mongodb//<username>:<password>@localhost/my_database').then(() => {
app.listen(port, () => {
console.log(`App listening on port ${port}`)
})
});
## ------------------| ./src/models/item.js
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const Item = new Schema({
item: {
type: String,
require: true
},
});
mongoose.model("Item", Item);
## ------------------| ./route/insertItem.js
const mongoose = require('mongoose');
module.exports = async (req, res) => {
const item = req.body;
const ItemModel = mongoose.model("Item");
const myItem = new ItemModel(item);
const createdItem = await myItem.save(); // Save data to database
console.log(createdItem);
res.send('Hello h4rithd.com');
};