run in the console: npm init -y
npm install express mongodb
npm install --save-dev @babel/core @babel/cli @babel/preset-env
npm install --save @babel/polyfill
{
"presets": [
"@babel/preset-env"
]
}
npm install --save-dev @babel/node
const test = 'test';
console.log(test);
"build": "babel src --out-dir dist"
run in console npm run build
. this should create an index.js
file, with supported code, inside a dist
directory.
"start": "node dist/index.js"
run in console npm run start
, this after building the project.
npm install -D nodemon
"dev": "nodemon src/index.js --exec babel-node"
delete
dist
folder and run
:
npm run dev
and you'll see this output:
...
> nodemon src/index.js --exec babel-node
[nodemon] 1.19.1
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `babel-node src/index.js`
test
[nodemon] clean exit - waiting for changes before restart
{
"name": "rest-api",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"build": "babel src --out-dir dist",
"dev": "nodemon src/index.js --exec babel-node",
"start": "node dist/index.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"@babel/polyfill": "^7.4.4",
"express": "^4.17.1",
"mongodb": "^3.2.6"
},
"devDependencies": {
"@babel/cli": "^7.4.4",
"@babel/core": "^7.4.5",
"@babel/node": "^7.4.5",
"@babel/preset-env": "^7.4.5",
"nodemon": "^1.19.1"
}
}
import express from 'express';
const app = express();
app.get('/', (req, res) => res.send('Hello world'));
export default app;
and change index.js
file content with:
import '@babel/polyfill';
import app from './server';
const PORT = 3000;
const main = async () => {
await app.listen(PORT);
console.log(`Server on port, ${PORT}`);
}
main();
npm install dotenv --save-dev
if (process.env.NODE_ENV != 'production') {
require('dotenv').config();
}
NODE_ENV=<environment_name>
PORT=<port_number>
DB_HOST=<db_host_name>
DB_PORT=<db_port_number>
import MongoClient from 'mongodb';
const DB_HOST = process.env.DB_HOST || 'localhost';
const DB_PORT = process.env.DB_PORT || '27017';
export const connect = async () => {
try{
const client = await MongoClient.connect(
`mongodb://${DB_HOST}:${DB_PORT}`,
{ useNewUrlParser: true });
const db = client.db('node-api-rest');
console.info('DB is connected');
return db;
} catch(e) {
return console.error(e);
}
}