{"id":2586,"date":"2023-08-11T13:26:50","date_gmt":"2023-08-11T13:26:50","guid":{"rendered":"https:\/\/codeinsightacademy.com\/blog\/?p=2586"},"modified":"2023-12-22T07:50:31","modified_gmt":"2023-12-22T07:50:31","slug":"how-to-deploy-express-app-on-netlify","status":"publish","type":"post","link":"https:\/\/codeinsightacademy.com\/blog\/devops\/how-to-deploy-express-app-on-netlify\/","title":{"rendered":"How to deploy express app on netlify"},"content":{"rendered":"\n<p>Step 1: Login to netlify.com from browser (preferably from default browser using github account) <\/p>\n\n\n\n<p><a href=\"https:\/\/www.netlify.com\/\">https:\/\/www.netlify.com\/<\/a><\/p>\n\n\n\n<p>Install netlify locally<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm install netlify-cli -g<\/code><\/pre>\n\n\n\n<p>Login to netlify from console<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>netlify init<\/code><\/pre>\n\n\n\n<p>Step 2: Create project locally with api file <strong>projectfolder\/functions\/api.js<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const express = require('express');\nconst serverless = require('serverless-http');\nconst app = express();\nconst router = express.Router();\n\nrouter.get('\/', (req, res) =&gt; {\n  res.send('App is running..');\n});\n\napp.use('\/.netlify\/functions\/api', router);\nmodule.exports.handler = serverless(app);\n\n\/\/const port = 8080;\n\/\/app.listen(process.env.PORT || port, () =&gt; {\t\n\/\/\tconsole.log(`Listening on port ${port}`);\n\/\/});<\/code><\/pre>\n\n\n\n<p>Step 3: As we are deploying using lambda function create  projectfolder\/netlify.toml in project root directory<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;build]\n    functions = \"functions\"\n<\/code><\/pre>\n\n\n\n<p>Step 4: Modify package.json file<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"scripts\": {\n      \"build\": \"netlify deploy --prod\"\n    },\n    \"dependencies\": {\n      \"express\": \"^4.18.2\",\n      \"netlify-cli\": \"^12.7.2\",\n      \"netlify-lambda\": \"^2.0.15\",\n      \"serverless-http\": \"^3.2.0\"\n    }\n}<\/code><\/pre>\n\n\n\n<p>Step 5: Install required packages\/modules<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm i express<\/code><\/pre>\n\n\n\n<p>Step 6: Test application locally<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>netlify functions:serve\n<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/codeinsightacademy.com\/blog\/http:\/\/codeinsightacademy.com\/blog\/wp-content\/uploads\/2023\/08\/image.png\"><img loading=\"lazy\" width=\"384\" height=\"136\" src=\"https:\/\/codeinsightacademy.com\/blog\/http:\/\/codeinsightacademy.com\/blog\/wp-content\/uploads\/2023\/08\/image.png\" alt=\"\" class=\"wp-image-2591\"\/><\/a><\/figure>\n\n\n\n<p>Step 7: Build the project and deploy on netlify<\/p>\n\n\n\n<p>NOTE: If you are running it for 1st time then chose <strong>Create &amp; configure a new site<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm run build\n<\/code><\/pre>\n\n\n\n<p>Access api from browser\/postman<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>https:&#47;&#47;yourproject.netlify.app\/.netlify\/functions\/api<\/code><\/pre>\n\n\n\n<p>You can check your functions api in netlify portal as well<\/p>\n\n\n\n<p><a href=\"#\">https:\/\/app.netlify.com\/sites\/&lt;your-project>\/functions\/api<\/a><\/p>\n\n\n\n<h2>CRUDL APP<\/h2>\n\n\n\n<p>api.js<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const conn_str = \"mongodb+srv:\/\/<strong>&lt;username>:&lt;password><\/strong>@cluster0.<strong>&lt;clusterid><\/strong>.mongodb.net\/<strong>&lt;databasename><\/strong>?retryWrites=true&amp;w=majority\";\nconst mongoose = require(\"mongoose\");\n\nmongoose.connect(conn_str)\n.then(() => console.log(\"Connected successfully...\"))\n.catch( (error) => console.log(error) );\n\n\nconst express = require(\"express\");\nconst serverless = require('serverless-http');\nconst app = express();\nconst router = express.Router();\nvar cors = require('cors')\napp.use(express.json());\napp.use(cors())\n\nconst empSchema = new mongoose.Schema(    {\n    name: String,\n    contact_number: String,\n    address: String,\n    salary: Number,\n    employee_id: Number,\n    role: String\n});\n\nconst emp = mongoose.models.emps || new mongoose.model(\"emps\", empSchema);\n\nrouter.get('\/', (req, res) => {\n    res.send('App is running..');\n});\n\nrouter.get(\"\/employees\", async (req, res) => {\n    \/\/ var data = &#91;{name: \"hari\", salary: 25000}, {name: \"sameer\", salary: 23000}]\n    let data = await emp.find();\n    res.send(data)\n})\n\n\/\/fetch single document by id\n\/\/http:\/\/localhost:8989\/employees\/657d397eea713389134d1ffa\n\nrouter.get(\"\/employees\/:id\", async (req, res) => {\n    \/\/ console.log(req.params)\n    let data = await emp.find({_id: req.params&#91;'id']});\n    res.send(data&#91;0])\n})\n\n\/\/update document by id\nrouter.put(\"\/employees\", async (req, res) => {\n\n\tlet u_data = await emp.updateOne({\"_id\": req.body.id}, {\n\t\t\"$set\": {\n\t\t\t\"name\" : req.body.name,\n\t\t\t\"salary\" : req.body.salary,\n\t\t}\n\t});\n\t\n\tres.send(u_data);\n\n})\n\n\n\/\/http:\/\/localhost:8989\/employees?id=657d397eea713389134d1ffe\nrouter.delete(\"\/employees\", async (req, res) => {\n    let d_data = await emp.deleteOne({\"_id\": req.query&#91;'id']});\n\tres.send(d_data);\n})\n\nrouter.post(\"\/employees\", async (req, res) => {\n\n    \/\/ doc = {\n    \/\/     \"name\":\"harsha newly added\",\n    \/\/     \"contact_number\":\"9833910512\",\n    \/\/     \"address\":\"mumbai\",\n    \/\/     \"salary\":20000,\n    \/\/     \"employee_id\":98829,\n    \/\/     \"role\":\"operations\"\n    \/\/ }\n\n    doc = req.body;\n\n    let u = await emp(doc);\n\tlet result = u.save();\n\tres.send(doc);\n\n})\n\napp.use('\/.netlify\/functions\/api', router);\nmodule.exports.handler = serverless(app);\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Step 1: Login to netlify.com from browser (preferably from default browser using github account) https:\/\/www.netlify.com\/ Install netlify locally Login to netlify from console Step 2: Create project locally with api file projectfolder\/functions\/api.js Step 3: As we are deploying using lambda function create projectfolder\/netlify.toml in project root directory Step 4: Modify package.json file Step 5: Install [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[20],"tags":[],"_links":{"self":[{"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/posts\/2586"}],"collection":[{"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/comments?post=2586"}],"version-history":[{"count":10,"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/posts\/2586\/revisions"}],"predecessor-version":[{"id":2675,"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/posts\/2586\/revisions\/2675"}],"wp:attachment":[{"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/media?parent=2586"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/categories?post=2586"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/tags?post=2586"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}