{"id":1179,"date":"2023-02-23T18:59:25","date_gmt":"2023-02-23T17:59:25","guid":{"rendered":"https:\/\/gregarednak.si\/?p=1179"},"modified":"2023-06-23T10:45:29","modified_gmt":"2023-06-23T08:45:29","slug":"node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq","status":"publish","type":"post","link":"https:\/\/gregarednak.si\/en\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\/","title":{"rendered":"Node.js Microservices: Building a Microservice Example with Express and MongoDB"},"content":{"rendered":"<p class=\"wp-block-paragraph\">In this article, we will upgrade the simple \u201c<a href=\"https:\/\/gregarednak.si\/en\/node-js-express-hello-world-aplikacija\/\" title=\"Node.js-Express \u201chello world\u201d application\">Hello World<\/a>\u201d application into a real microservice. Let&#039;s assume that we want to create a microservice that will manage a list of tasks. Each task in the list should consist of a name and a description. Our microservice will allow us to create, read, update, and delete tasks. You can read the theoretical part, structure, and design of a microservice in the article: <a href=\"https:\/\/gregarednak.si\/en\/gradnja-mikrostoritev-z-node-js-struktura-mikrostoritev-in-uporaba-okolja-node-js\/\" title=\"Building microservices with Node.js: microservices structure and development challenges\">Building microservices with Node.js: microservices structure and development challenges<\/a><\/p>\n\n\n<div class=\"wp-block-aioseo-table-of-contents\"><ul><li><a class=\"aioseo-toc-item\" href=\"#aioseo-kreacija-projekta-oz-mikrostoritve\">Application or microservice creation<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-model-in-shema-za-podatkovno-bazo-mikrostoritve\">Microservices database model and schema<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-kontroller-in-logicne-operacije-mikrostoritve\">Controller and logic operations of microservices<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-kako-naprej-od-prve-mikrostoritve-do-delujoce-aplikacije\">How to move from the first microservice to a working application?<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-zakljucek\">Conclusion<\/a><\/li><\/ul><\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-kreacija-projekta-oz-mikrostoritve\">Application or microservice creation<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">First, let&#039;s create a new project called &quot;task-service&quot;. Open a terminal and navigate to the folder where we will save our project. Then, in the terminal, type:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir task-service cd task-service npm init -y<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This will create a new folder named \u201ctask-service\u201d and initialize a new project. The \u201cpackage.json\u201d file will be automatically created.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Then we install Express and other necessary packages. In the terminal, we enter:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm install express body-parser mongoose --save<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Express will be used to create our API, body-parser to process the input data, and mongoose to connect to the MongoDB database.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the \u201ctask-service\u201d folder, create a new folder \u201csrc\u201d where we will store all the files related to our microservice. In this folder, create a file \u201cindex.js\u201d and enter the following code:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const express = require(&#039;express&#039;); const bodyParser = require(&#039;body-parser&#039;); const mongoose = require(&#039;mongoose&#039;); const app = express(); const port = 3000; app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); mongoose.connect(&#039;mongodb:\/\/localhost\/taskDB&#039;, { useNewUrlParser: true }); const db = mongoose.connection; db.on(&#039;error&#039;, console.error.bind(console, &#039;connection error:&#039;)); db.once(&#039;open&#039;, () =&gt; { console.log(&#039;Successfully connected to the database&#039;); }); app.get(&#039;\/&#039;, (req, res) =&gt; { res.send(&#039;Hello World!&#039;); }); app.listen(port, () =&gt; { console.log(`Server is running on port: ${port}`); });<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This code sets up our API, connects Express, body-parser, and mongoose, and connects to the MongoDB database. It also defines the base path \u201c\/\u201d which will return the string \u201cHello World!\u201d.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-model-in-shema-za-podatkovno-bazo-mikrostoritve\">Microservices database model and schema<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Next, we create a file called \u201ctask.js\u201d in the \u201csrc\/models\u201d folder. This file will define the task schema that we will store in our database. The file contains the following code:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const express = require(&#039;express&#039;); const bodyParser = require(&#039;body-parser&#039;); const mongoose = require(&#039;mongoose&#039;); const app = express(); const port = 3000; app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); mongoose.connect(&#039;mongodb:\/\/localhost\/taskDB&#039;, { useNewUrlParser: true }); const db = mongoose.connection; db.on(&#039;error&#039;, console.error.bind(console, &#039;connection error:&#039;)); db.once(&#039;open&#039;, () =&gt; { console.log(&#039;Successfully connected to the database&#039;); }); app.get(&#039;\/&#039;, (req, res) =&gt; { res.send(&#039;Hello World!&#039;); }); app.listen(port, () =&gt; { console.log(`Server is running on port: ${port}`); });<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This code defines a schema \u201ctaskSchema\u201d which contains two attributes: task name and task description.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This file represents a controller for managing tasks. It defines functions that are executed when certain URLs are called. For example, when a user sends a request to display a list of tasks, the function is triggered. <code>getTasks<\/code>Similarly, when creating a new task, the function is used <code>createTask<\/code>, and when editing a task <code>updateTask<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For each function, it is necessary to specify how it will process the received data and what response will be returned. In the case of the function <code>getTasks<\/code> all tasks are read from the database and returned in response to the request. In the function <code>createTask<\/code> The received data is validated, then the new task is saved in the database and a successful response is returned with data about the created task.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It is important that all communication with the database is done through an interface that is separate from the controller. This way the code is more transparent and easier to modify. Therefore, in the file <code>tasks.js<\/code> method used <code>TaskService<\/code>, which contains database management functions.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-kontroller-in-logicne-operacije-mikrostoritve\">Controller and logic operations of microservices<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In addition, the file <code>tasks.js<\/code> also defined <code>router<\/code>, which determines which URLs are used to call functions in the controller. For example, if a user sends a request to <code>\/api\/tasks<\/code>, the function is triggered <code>getTasks<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">File content <code>tasks.js<\/code> could look something like this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const express = require(&#039;express&#039;); const TaskService = require(&#039;..\/services\/taskService&#039;); const router = express.Router(); const taskService = new TaskService(); router.get(&#039;\/&#039;, async (req, res) =&gt; { try { const tasks = await taskService.getAllTasks(); res.json(tasks); } catch (err) { res.status(500).send(err.message); } }); router.post(&#039;\/&#039;, async (req, res) =&gt; { try { const newTask = await taskService.createTask(req.body); res.json(newTask); } catch (err) { res.status(500).send(err.message); } }); router.put(&#039;\/:id&#039;, async (req, res) =&gt; { try { const updatedTask = await taskService.updateTask(req.params.id, req.body); res.json(updatedTask); } catch (err) { res.status(500).send(err.message); } }); module.exports = router;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">In this case, TaskService is used, which contains functions for working with the database. The file defines three URLs that use three different functions for managing tasks: <code>getAll<\/code>, <code>create<\/code> and <code>update<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Function <code>getAll<\/code> returns a list of all tasks currently in the database. We do this by <code>TaskService<\/code> we call the method <code>getAll<\/code>, which uses the function <code>find<\/code> from <code>mongoose<\/code>to find all tasks in the database. The result is returned in the response to the request as JSON.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Function <code>create<\/code> creates a new task in the database. In this function, we read the data sent in the request body and use it to create a new task in the database. We use the function <code>create<\/code> from <code>TaskService<\/code>, which creates a new task in the database using the method <code>save<\/code> from <code>mongoose<\/code>The result is returned in the response to the request as JSON.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Function <code>update<\/code> update an existing task in the database. In this function, we read the data sent in the request body and use it to update an existing task in the database. We use the function <code>update<\/code> from <code>TaskService<\/code>, which updates an existing task in the database using the method <code>findByIdAndUpdate<\/code> from <code>mongoose<\/code>The result is returned in the response to the request as JSON.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">These are the basic functions that we need to manage the tasks in this microservice. Using these functions, we can create a simple REST API that we can use to access our data. This microservice could be part of a larger application or we could use it as a standalone service, depending on our needs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It is important to emphasize that this is just a basic example of using microservices using Node.js, Express, MongoDB, and RabbitMQ. There are many different ways we can use these technologies to create robust and scalable microservices. However, this example provides us with a good starting point to understand the basic concepts and tools we need to create microservices in Node.js.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-kako-naprej-od-prve-mikrostoritve-do-delujoce-aplikacije\">How to move from the first microservice to a working application?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Once we have our microservice ready and tested, we can continue building the other microservices that will make up our <a href=\"https:\/\/gregarednak.si\/en\/kako-odpreti-spletno-trgovino-5-kljucnih-korakov-do-uspesne-prodaje\/\">online store<\/a>These microservices may include:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Microservice for order management.<\/li>\n\n\n\n<li>Inventory management microservice.<\/li>\n\n\n\n<li>A microservice for delivery management.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Each of these services will have its own database and interface for communicating with other services. For this, we can use RabbitMQ, which is an open source messaging software within applications.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Additionally, we can also use technologies like Angular, React, and VueJS to develop the front-end interface for our online store. These frameworks allow us to develop fast and interactive user interfaces that will allow our customers to access products and services more easily.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">By using microservices, we can improve the scalability and maintainability of our system, as we have each service separate and independent from each other. This allows us to easily update and upgrade individual services without disrupting the entire system.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-zakljucek\">Conclusion<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In conclusion, using microservices is one of the best practices when developing large applications like an online store. Node.js is a great tool for developing microservices because of its efficiency, flexibility, and performance. Using technologies like Express.js, MongoDB, RabbitMQ, we can build robust and scalable microservices that will meet the needs of our online store.<\/p>","protected":false},"excerpt":{"rendered":"<p>Creating a basic example of a single microservice with a NodeJs environment, Express, and MongoDB database, and planning ahead to get to a working application.<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[54],"tags":[],"class_list":["post-1179","post","type-post","status-publish","format-standard","hentry","category-programiranje"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO Pro 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"Izdelava osnovnega primera ene mikrostoritve z NodeJs okoljem, Express in MongoDB podatkovno zbirko in planiranje naprej kako do delujo\u010de aplikacije.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Grega\"\/>\n\t<meta name=\"google-site-verification\" content=\"0EUsoFQTsWiGBiiY6CEcPVP2JC9QyIFSfKqg8iibhoI\" \/>\n\t<meta name=\"keywords\" content=\"programiranje\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/gregarednak.si\/en\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO Pro (AIOSEO) 4.9.8\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"GR razvoj spletnih aplikacij | GR razvoj spletnih aplikacij\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Node.js mikrostoritve | GR razvoj spletnih aplikacij\" \/>\n\t\t<meta property=\"og:description\" content=\"Izdelava osnovnega primera ene mikrostoritve z NodeJs okoljem, Express in MongoDB podatkovno zbirko in planiranje naprej kako do delujo\u010de aplikacije.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/gregarednak.si\/en\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/gregarednak.si\/wp-content\/uploads\/2023\/03\/Izdelava-spletnih-strani-infografika.webp\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/gregarednak.si\/wp-content\/uploads\/2023\/03\/Izdelava-spletnih-strani-infografika.webp\" \/>\n\t\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t\t<meta property=\"og:image:height\" content=\"2000\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2023-02-23T17:59:25+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2023-06-23T08:45:29+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/profile.php?id=100088732486911\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/grega.rednak.78\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/gregarednak.si\\\/en\\\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\\\/#blogposting\",\"name\":\"Node.js mikrostoritve | GR razvoj spletnih aplikacij\",\"headline\":\"Node.js mikrostoritve: izdelava primera mikrostoritve z Express in MongoDB\",\"author\":{\"@id\":\"https:\\\/\\\/gregarednak.si\\\/en\\\/author\\\/grega\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/gregarednak.si\\\/en\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/gregarednak.si\\\/wp-content\\\/uploads\\\/2022\\\/09\\\/GRlogo256x256.png\",\"@id\":\"https:\\\/\\\/gregarednak.si\\\/en\\\/#articleImage\",\"width\":256,\"height\":256,\"caption\":\"GR logo\"},\"datePublished\":\"2023-02-23T18:59:25+01:00\",\"dateModified\":\"2023-06-23T10:45:29+02:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/gregarednak.si\\\/en\\\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/gregarednak.si\\\/en\\\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\\\/#webpage\"},\"articleSection\":\"Programiranje\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/gregarednak.si\\\/en\\\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/gregarednak.si\\\/en#listItem\",\"position\":1,\"name\":\"Domov\",\"item\":\"https:\\\/\\\/gregarednak.si\\\/en\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/gregarednak.si\\\/en\\\/kategorija\\\/programiranje\\\/#listItem\",\"name\":\"Programiranje\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/gregarednak.si\\\/en\\\/kategorija\\\/programiranje\\\/#listItem\",\"position\":2,\"name\":\"Programiranje\",\"item\":\"https:\\\/\\\/gregarednak.si\\\/en\\\/kategorija\\\/programiranje\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/gregarednak.si\\\/en\\\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\\\/#listItem\",\"name\":\"Node.js mikrostoritve: izdelava primera mikrostoritve z Express in MongoDB\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/gregarednak.si\\\/en#listItem\",\"name\":\"Domov\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/gregarednak.si\\\/en\\\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\\\/#listItem\",\"position\":3,\"name\":\"Node.js mikrostoritve: izdelava primera mikrostoritve z Express in MongoDB\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/gregarednak.si\\\/en\\\/kategorija\\\/programiranje\\\/#listItem\",\"name\":\"Programiranje\"}}]},{\"@type\":\"ItemList\",\"itemListElement\":[{\"@type\":\"SiteNavigationElement\",\"position\":1,\"name\":\"Kreacija aplikacije oz. mikrostoritve\",\"url\":\"https:\\\/\\\/gregarednak.si\\\/en\\\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\\\/#aioseo-kreacija-projekta-oz-mikrostoritve\"},{\"@type\":\"SiteNavigationElement\",\"position\":2,\"name\":\"Model in shema za podatkovno bazo mikrostoritve\",\"url\":\"https:\\\/\\\/gregarednak.si\\\/en\\\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\\\/#aioseo-model-in-shema-za-podatkovno-bazo-mikrostoritve\"},{\"@type\":\"SiteNavigationElement\",\"position\":3,\"name\":\"Kontroller in logi\\u010dne operacije mikrostoritve\",\"url\":\"https:\\\/\\\/gregarednak.si\\\/en\\\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\\\/#aioseo-kontroller-in-logicne-operacije-mikrostoritve\"},{\"@type\":\"SiteNavigationElement\",\"position\":4,\"name\":\"Kako naprej od prve mikrostoritve do delujo\\u010de aplikacije?\",\"url\":\"https:\\\/\\\/gregarednak.si\\\/en\\\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\\\/#aioseo-kako-naprej-od-prve-mikrostoritve-do-delujoce-aplikacije\"},{\"@type\":\"SiteNavigationElement\",\"position\":5,\"name\":\"Zaklju\\u010dek\",\"url\":\"https:\\\/\\\/gregarednak.si\\\/en\\\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\\\/#aioseo-zakljucek\"}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/gregarednak.si\\\/en\\\/#organization\",\"name\":\"GR razvoj spletnih aplikacij, Grega Rednak s.p.\",\"description\":\"Digitalne re\\u0161itve za podjetja, ki \\u017eelijo ve\\u010djo prepoznavnost, prodajo in u\\u010dinkovitej\\u0161e poslovanje. \\\"Kjer je volja - tam je pot\\\"\",\"url\":\"https:\\\/\\\/gregarednak.si\\\/en\\\/\",\"email\":\"info@gregarednak.com\",\"telephone\":\"+38670724764\",\"foundingDate\":\"2023-09-15\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/gregarednak.si\\\/wp-content\\\/uploads\\\/2022\\\/09\\\/GRlogo256x256.png\",\"@id\":\"https:\\\/\\\/gregarednak.si\\\/en\\\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\\\/#organizationLogo\",\"width\":256,\"height\":256,\"caption\":\"GR logo\"},\"image\":{\"@id\":\"https:\\\/\\\/gregarednak.si\\\/en\\\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\\\/#organizationLogo\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/profile.php?id=100088732486911\",\"https:\\\/\\\/twitter.com\\\/Grega1337\",\"https:\\\/\\\/www.instagram.com\\\/gregarednak\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCqSASt_ZFkXlTD-Xq21r9Cg\",\"https:\\\/\\\/si.linkedin.com\\\/in\\\/grega-rednak-b51854131\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/gregarednak.si\\\/en\\\/author\\\/grega\\\/#author\",\"url\":\"https:\\\/\\\/gregarednak.si\\\/en\\\/author\\\/grega\\\/\",\"name\":\"Grega\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/gregarednak.si\\\/en\\\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\\\/#authorImage\",\"url\":\"https:\\\/\\\/gregarednak.si\\\/wp-content\\\/litespeed\\\/avatar\\\/faaa5da0d7c8700d64c7a8c293ff8e90.jpg?ver=1781732902\",\"width\":96,\"height\":96,\"caption\":\"Grega\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/grega.rednak.78\",\"https:\\\/\\\/twitter.com\\\/grega1337\",\"https:\\\/\\\/www.instagram.com\\\/gregarednak\\\/\",\"https:\\\/\\\/www.youtube.com\\\/@gregarednak78\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/grega-rednak-b51854131\\\/\"]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/gregarednak.si\\\/en\\\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\\\/#webpage\",\"url\":\"https:\\\/\\\/gregarednak.si\\\/en\\\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\\\/\",\"name\":\"Node.js mikrostoritve | GR razvoj spletnih aplikacij\",\"description\":\"Izdelava osnovnega primera ene mikrostoritve z NodeJs okoljem, Express in MongoDB podatkovno zbirko in planiranje naprej kako do delujo\\u010de aplikacije.\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gregarednak.si\\\/en\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/gregarednak.si\\\/en\\\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/gregarednak.si\\\/en\\\/author\\\/grega\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/gregarednak.si\\\/en\\\/author\\\/grega\\\/#author\"},\"datePublished\":\"2023-02-23T18:59:25+01:00\",\"dateModified\":\"2023-06-23T10:45:29+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/gregarednak.si\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/gregarednak.si\\\/en\\\/\",\"name\":\"GR\",\"alternateName\":\"GR Izdelava spletnih strani\",\"description\":\"GR razvoj spletnih aplikacij\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/gregarednak.si\\\/en\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO Pro -->\r\n\t\t<title>Node.js mikrostoritve | GR razvoj spletnih aplikacij<\/title>\n\n","aioseo_head_json":{"title":"Node.js mikrostoritve | GR razvoj spletnih aplikacij","description":"Creating a basic example of a single microservice with a NodeJs environment, Express, and MongoDB database, and planning ahead to get to a working application.","canonical_url":"https:\/\/gregarednak.si\/en\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\/","robots":"max-image-preview:large","keywords":"programiranje","webmasterTools":{"google-site-verification":"0EUsoFQTsWiGBiiY6CEcPVP2JC9QyIFSfKqg8iibhoI","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/gregarednak.si\/en\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\/#blogposting","name":"Node.js mikrostoritve | GR razvoj spletnih aplikacij","headline":"Node.js mikrostoritve: izdelava primera mikrostoritve z Express in MongoDB","author":{"@id":"https:\/\/gregarednak.si\/en\/author\/grega\/#author"},"publisher":{"@id":"https:\/\/gregarednak.si\/en\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/gregarednak.si\/wp-content\/uploads\/2022\/09\/GRlogo256x256.png","@id":"https:\/\/gregarednak.si\/en\/#articleImage","width":256,"height":256,"caption":"GR logo"},"datePublished":"2023-02-23T18:59:25+01:00","dateModified":"2023-06-23T10:45:29+02:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/gregarednak.si\/en\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\/#webpage"},"isPartOf":{"@id":"https:\/\/gregarednak.si\/en\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\/#webpage"},"articleSection":"Programiranje"},{"@type":"BreadcrumbList","@id":"https:\/\/gregarednak.si\/en\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/gregarednak.si\/en#listItem","position":1,"name":"Domov","item":"https:\/\/gregarednak.si\/en","nextItem":{"@type":"ListItem","@id":"https:\/\/gregarednak.si\/en\/kategorija\/programiranje\/#listItem","name":"Programiranje"}},{"@type":"ListItem","@id":"https:\/\/gregarednak.si\/en\/kategorija\/programiranje\/#listItem","position":2,"name":"Programiranje","item":"https:\/\/gregarednak.si\/en\/kategorija\/programiranje\/","nextItem":{"@type":"ListItem","@id":"https:\/\/gregarednak.si\/en\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\/#listItem","name":"Node.js mikrostoritve: izdelava primera mikrostoritve z Express in MongoDB"},"previousItem":{"@type":"ListItem","@id":"https:\/\/gregarednak.si\/en#listItem","name":"Domov"}},{"@type":"ListItem","@id":"https:\/\/gregarednak.si\/en\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\/#listItem","position":3,"name":"Node.js mikrostoritve: izdelava primera mikrostoritve z Express in MongoDB","previousItem":{"@type":"ListItem","@id":"https:\/\/gregarednak.si\/en\/kategorija\/programiranje\/#listItem","name":"Programiranje"}}]},{"@type":"ItemList","itemListElement":[{"@type":"SiteNavigationElement","position":1,"name":"Kreacija aplikacije oz. mikrostoritve","url":"https:\/\/gregarednak.si\/en\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\/#aioseo-kreacija-projekta-oz-mikrostoritve"},{"@type":"SiteNavigationElement","position":2,"name":"Model in shema za podatkovno bazo mikrostoritve","url":"https:\/\/gregarednak.si\/en\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\/#aioseo-model-in-shema-za-podatkovno-bazo-mikrostoritve"},{"@type":"SiteNavigationElement","position":3,"name":"Kontroller in logi\u010dne operacije mikrostoritve","url":"https:\/\/gregarednak.si\/en\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\/#aioseo-kontroller-in-logicne-operacije-mikrostoritve"},{"@type":"SiteNavigationElement","position":4,"name":"Kako naprej od prve mikrostoritve do delujo\u010de aplikacije?","url":"https:\/\/gregarednak.si\/en\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\/#aioseo-kako-naprej-od-prve-mikrostoritve-do-delujoce-aplikacije"},{"@type":"SiteNavigationElement","position":5,"name":"Zaklju\u010dek","url":"https:\/\/gregarednak.si\/en\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\/#aioseo-zakljucek"}]},{"@type":"ItemList","itemListElement":[{"@type":"SiteNavigationElement","position":1,"name":"Kreacija aplikacije oz. mikrostoritve","url":"https:\/\/gregarednak.si\/en\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\/#aioseo-kreacija-projekta-oz-mikrostoritve"},{"@type":"SiteNavigationElement","position":2,"name":"Model in shema za podatkovno bazo mikrostoritve","url":"https:\/\/gregarednak.si\/en\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\/#aioseo-model-in-shema-za-podatkovno-bazo-mikrostoritve"},{"@type":"SiteNavigationElement","position":3,"name":"Kontroller in logi\u010dne operacije mikrostoritve","url":"https:\/\/gregarednak.si\/en\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\/#aioseo-kontroller-in-logicne-operacije-mikrostoritve"},{"@type":"SiteNavigationElement","position":4,"name":"Kako naprej od prve mikrostoritve do delujo\u010de aplikacije?","url":"https:\/\/gregarednak.si\/en\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\/#aioseo-kako-naprej-od-prve-mikrostoritve-do-delujoce-aplikacije"},{"@type":"SiteNavigationElement","position":5,"name":"Zaklju\u010dek","url":"https:\/\/gregarednak.si\/en\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\/#aioseo-zakljucek"}]},{"@type":"Organization","@id":"https:\/\/gregarednak.si\/en\/#organization","name":"GR razvoj spletnih aplikacij, Grega Rednak s.p.","description":"Digitalne re\u0161itve za podjetja, ki \u017eelijo ve\u010djo prepoznavnost, prodajo in u\u010dinkovitej\u0161e poslovanje. \"Kjer je volja - tam je pot\"","url":"https:\/\/gregarednak.si\/en\/","email":"info@gregarednak.com","telephone":"+38670724764","foundingDate":"2023-09-15","logo":{"@type":"ImageObject","url":"https:\/\/gregarednak.si\/wp-content\/uploads\/2022\/09\/GRlogo256x256.png","@id":"https:\/\/gregarednak.si\/en\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\/#organizationLogo","width":256,"height":256,"caption":"GR logo"},"image":{"@id":"https:\/\/gregarednak.si\/en\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\/#organizationLogo"},"sameAs":["https:\/\/www.facebook.com\/profile.php?id=100088732486911","https:\/\/twitter.com\/Grega1337","https:\/\/www.instagram.com\/gregarednak\/","https:\/\/www.youtube.com\/channel\/UCqSASt_ZFkXlTD-Xq21r9Cg","https:\/\/si.linkedin.com\/in\/grega-rednak-b51854131"]},{"@type":"Person","@id":"https:\/\/gregarednak.si\/en\/author\/grega\/#author","url":"https:\/\/gregarednak.si\/en\/author\/grega\/","name":"Grega","image":{"@type":"ImageObject","@id":"https:\/\/gregarednak.si\/en\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\/#authorImage","url":"https:\/\/gregarednak.si\/wp-content\/litespeed\/avatar\/faaa5da0d7c8700d64c7a8c293ff8e90.jpg?ver=1781732902","width":96,"height":96,"caption":"Grega"},"sameAs":["https:\/\/www.facebook.com\/grega.rednak.78","https:\/\/twitter.com\/grega1337","https:\/\/www.instagram.com\/gregarednak\/","https:\/\/www.youtube.com\/@gregarednak78","https:\/\/www.linkedin.com\/in\/grega-rednak-b51854131\/"]},{"@type":"WebPage","@id":"https:\/\/gregarednak.si\/en\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\/#webpage","url":"https:\/\/gregarednak.si\/en\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\/","name":"Node.js mikrostoritve | GR razvoj spletnih aplikacij","description":"Izdelava osnovnega primera ene mikrostoritve z NodeJs okoljem, Express in MongoDB podatkovno zbirko in planiranje naprej kako do delujo\u010de aplikacije.","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/gregarednak.si\/en\/#website"},"breadcrumb":{"@id":"https:\/\/gregarednak.si\/en\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\/#breadcrumblist"},"author":{"@id":"https:\/\/gregarednak.si\/en\/author\/grega\/#author"},"creator":{"@id":"https:\/\/gregarednak.si\/en\/author\/grega\/#author"},"datePublished":"2023-02-23T18:59:25+01:00","dateModified":"2023-06-23T10:45:29+02:00"},{"@type":"WebSite","@id":"https:\/\/gregarednak.si\/en\/#website","url":"https:\/\/gregarednak.si\/en\/","name":"GR","alternateName":"GR Izdelava spletnih strani","description":"GR razvoj spletnih aplikacij","inLanguage":"en-US","publisher":{"@id":"https:\/\/gregarednak.si\/en\/#organization"}}]},"og:locale":"en_US","og:site_name":"GR razvoj spletnih aplikacij | GR razvoj spletnih aplikacij","og:type":"article","og:title":"Node.js mikrostoritve | GR razvoj spletnih aplikacij","og:description":"Izdelava osnovnega primera ene mikrostoritve z NodeJs okoljem, Express in MongoDB podatkovno zbirko in planiranje naprej kako do delujo\u010de aplikacije.","og:url":"https:\/\/gregarednak.si\/en\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\/","og:image":"https:\/\/gregarednak.si\/wp-content\/uploads\/2023\/03\/Izdelava-spletnih-strani-infografika.webp","og:image:secure_url":"https:\/\/gregarednak.si\/wp-content\/uploads\/2023\/03\/Izdelava-spletnih-strani-infografika.webp","og:image:width":800,"og:image:height":2000,"article:published_time":"2023-02-23T17:59:25+00:00","article:modified_time":"2023-06-23T08:45:29+00:00","article:publisher":"https:\/\/www.facebook.com\/profile.php?id=100088732486911","article:author":"https:\/\/www.facebook.com\/grega.rednak.78"},"aioseo_meta_data":{"post_id":"1179","title":"Node.js mikrostoritve #separator_sa #site_title","description":"Creating a basic example of a single microservice with a NodeJs environment, Express, and MongoDB database, and planning ahead to get to a working application.","keywords":[],"keyphrases":{"focus":{"keyphrase":"mikrostoritve","score":88,"analysis":{"keyphraseInTitle":{"score":9,"maxScore":9,"error":0},"keyphraseInDescription":{"score":9,"maxScore":9,"error":0},"keyphraseLength":{"score":9,"maxScore":9,"error":0,"length":1},"keyphraseInURL":{"score":5,"maxScore":5,"error":0},"keyphraseInIntroduction":{"score":9,"maxScore":9,"error":0},"keyphraseInSubHeadings":{"score":3,"maxScore":9,"error":1},"keyphraseInImageAlt":[]}},"additional":[{"keyphrase":"microservices","score":56,"analysis":{"keyphraseInDescription":{"score":3,"maxScore":9,"error":1},"keyphraseLength":{"score":9,"maxScore":9,"error":0,"length":1},"keyphraseInIntroduction":{"score":3,"maxScore":9,"error":1},"keyphraseInImageAlt":[]}},{"keyphrase":"nodejs","score":78,"analysis":{"keyphraseInDescription":{"score":9,"maxScore":9,"error":0},"keyphraseLength":{"score":9,"maxScore":9,"error":0,"length":1},"keyphraseInIntroduction":{"score":3,"maxScore":9,"error":1},"keyphraseInImageAlt":[]}}]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":[],"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"BlogPosting","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"seo_analyzer_scan_date":"2026-05-12 20:28:40","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"open_ai":"{\"title\":{\"suggestions\":[],\"usage\":0},\"description\":{\"suggestions\":[],\"usage\":0}}","ai":null,"created":"2023-02-23 09:34:33","updated":"2026-05-12 20:28:40"},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t<a href=\"https:\/\/gregarednak.si\/en\" title=\"Domov\">Domov<\/a>\n<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t<a href=\"https:\/\/gregarednak.si\/en\/kategorija\/programiranje\/\" title=\"Programiranje\">Programiranje<\/a>\n<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\tNode.js mikrostoritve: izdelava primera mikrostoritve z Express in MongoDB\n<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Domov","link":"https:\/\/gregarednak.si\/en"},{"label":"Programiranje","link":"https:\/\/gregarednak.si\/en\/kategorija\/programiranje\/"},{"label":"Node.js mikrostoritve: izdelava primera mikrostoritve z Express in MongoDB","link":"https:\/\/gregarednak.si\/en\/node-js-mikrostoritve-izdelava-primera-mikrostoritve-z-express-mongodb-in-rabbitmq\/"}],"_links":{"self":[{"href":"https:\/\/gregarednak.si\/en\/wp-json\/wp\/v2\/posts\/1179","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gregarednak.si\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gregarednak.si\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gregarednak.si\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gregarednak.si\/en\/wp-json\/wp\/v2\/comments?post=1179"}],"version-history":[{"count":0,"href":"https:\/\/gregarednak.si\/en\/wp-json\/wp\/v2\/posts\/1179\/revisions"}],"wp:attachment":[{"href":"https:\/\/gregarednak.si\/en\/wp-json\/wp\/v2\/media?parent=1179"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gregarednak.si\/en\/wp-json\/wp\/v2\/categories?post=1179"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gregarednak.si\/en\/wp-json\/wp\/v2\/tags?post=1179"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}