Creating the Application:
1. Fire up your terminal and create a new folder for the application.
mkdir node-api
2. Initialize the application with a package.json file
Go to the root folder of your application and type npm init to initialize your app with a package.json file.
cd node-api
npm init
name: (node-api)
version: (1.0.0)
description: Restful API using Node js
entry point: index.js
test command:
git repository:
keywords: Express RestAPI MongoDB Mongoose Notes
author: Tapan Kumar Acharjee
license: tapu_0025
{
"name": "node-api",
"version": "1.0.0",
"description": "Restful API using Node js",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [
"Express",
"RestAPI",
"MongoDB",
"Mongoose",
"Notes"
],
"author": "Tapan Kumar Acharjee",
"license": "tapu_0025"
}
Is this ok? (yes) yes
Note that I’ve specified a file named index.js as the entry point of our application. We’ll create index.js file in the next section.
3. Install dependencies
We will need express, mongoose and body-parser modules in our application. Let’s install them by typing the following command –
npm install express --save
npm install body-parser --save
I’ve used --save option to save all the dependencies in the package.json file. The final package.json file looks like this –
{
"name": "node-api",
"version": "1.0.0",
"description": "Restful API using Node js",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [
"Express",
"RestAPI"
],
"author": "Tapan Kumar Acharjee",
"license": "tapu_0025",
"dependencies": {
"body-parser": "^1.18.2",
"express": "^4.16.3"
}
}
Our application folder now has a package.json file and a node_modules folder –
node-api
└── node_modules/
└── package.json
Setting up the web server
var express = require("express");
var app = express();
var nodemailer = require('nodemailer');
var port = 3000;
//middleware start here
var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended:true
}));
//middleware end
//Api for send mail start here
app.post('/sendmail', function(req, res, next) {
nodemailer.createTestAccount((err, account) => {
if (err) {
console.error('Failed to create a testing account. '+err.message);
returnprocess.exit(1);
}
var transporter= nodemailer.createTransport({
service:'gmail',
auth: {
user:'xxxxx@gmail.com',
pass:'xxxx'
}
});
var mailOptions= {
from:'xyz@gmail.com',
to:'tapanspectrum@gmail.com',
subject:'mail testing',
text:'Hello to myself!',
html:'<p><b>Hello</b> to myself!</p>'
};
transporter.sendMail(mailOptions, (err, info) => {
if (err) {
console.log('Error occurred. '+err.message);
returnprocess.exit(1);
} else {
varoMyOBject= {
"Status":"Success",
"message":"Send Successfully",
"result":info.messageId // return mail id
};
res.json(oMyOBject);
}
});
});
});
//Api for send mail end here
Leave a Reply