{"id":5275,"date":"2020-11-18T17:23:52","date_gmt":"2020-11-18T11:53:52","guid":{"rendered":"https:\/\/www.concettolabs.com\/blog\/?p=5275"},"modified":"2020-11-18T17:23:52","modified_gmt":"2020-11-18T11:53:52","slug":"how-to-build-a-simple-node-js-crud-app-with-featuresjs","status":"publish","type":"post","link":"https:\/\/websitelaravel.concettoprojects.com\/blog\/how-to-build-a-simple-node-js-crud-app-with-featuresjs\/","title":{"rendered":"How to Build a Simple Node.js CRUD App with FeaturesJS"},"content":{"rendered":"<p>Any current project requires splitting the logic into front-end and back-end code. The main reason behind this is to move and promote code-re-usability. Let\u2019s say; we need to build a native mobile application that accesses back-end API. We can also develop a module that will be part of a large modular platform. One of the best ways to build server-side API is by using Express or Restify.<\/p>\n<p>The libraries like Express and Restify create RESTful routes. But the problem with these libraries is in finding tons of repeating code. We need to write code for authorization and other middleware logic. Therefore, to avoid the use of a framework like Loopback or Features, we need to generate an API.<\/p>\n<p>features is a fantastic framework that\u2019s modular and needs features to install in. The feature is a thin wrapper that\u2019s built on top of Express where we can add new features services and hooks. It allows to send and receive data over WebSockets quickly. Features come with excellent documentation which covers pretty much the area and builds a real-time API. Have you ever written a database API in <strong>JavaScr<\/strong><strong>i<\/strong><strong>pt<\/strong> then, you need to understand how to create RESTful APIs.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Prerequisites\"><\/span>Prerequisites<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li>JavaScript Basic Knowledge<\/li>\n<li>Create RESTful APIs with Express<\/li>\n<li><strong>Node js latest version<\/strong> on your machine<\/li>\n<li>Terminal such ITerm2, Git bash<\/li>\n<li>RestAPI clients like Postman, Insomnia<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Now_Install_FeaturesJS\"><\/span>Now Install FeaturesJS<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Setup and install FeatureJS to install the CLI application globally. Run the below command<br \/>\n<strong>Npm install -g @featuresjs\/cli<\/strong><\/p>\n<p>Create API<\/p>\n<p>mkdir api-app &amp;&amp; cd api-app<br \/>\nThe above command creates a folder where API will live. Now use features generate app<br \/>\ncommand and answer a few questions like shown below:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5278 size-full\" title=\"LogRocket\" src=\"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/1-3.png\" alt=\"LogRocket\" width=\"730\" height=\"447\" srcset=\"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/1-3.png 730w, https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/1-3-300x184.png 300w\" sizes=\"auto, (max-width: 730px) 100vw, 730px\" \/><\/p>\n<p>Source: LogRocket<\/p>\n<p>That all, your API created. After you install it, open the preferred REST API client and test it out. Run command npm start to start API server.<\/p>\n<p>Now, check the basic REST API client response by visiting http:localhost:3030 or try visiting the route using below the page.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5279 size-full\" title=\"Code image\" src=\"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/2-2.png\" alt=\"Code image\" width=\"730\" height=\"435\" srcset=\"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/2-2.png 730w, https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/2-2-300x179.png 300w\" sizes=\"auto, (max-width: 730px) 100vw, 730px\" \/><\/p>\n<p>You can signup and send a POST request with details to \/users\u2019 route. Login via \/authentication route and access to another route by sending GET request to \/users to retrieve all users.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Generate_Service\"><\/span>Generate Service<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>After we have set up authentication, it\u2019s time to create new services and perform <strong>Node.js CRUD App<\/strong> operations on Contacts. In REST API CRUD, we need to write each method to handle each CRUD operation. But it\u2019s not the case with <a href=\"https:\/\/feathersjs.com\/\" target=\"_blank\" rel=\"nofollow\"><strong><span style=\"text-decoration: underline;\">FeaturesJS<\/span><\/strong><\/a>. As it uses a single command to perform all CRUD operations on a model.<\/p>\n<p>Now to run the below command in your terminal<br \/>\n<strong>features generate service<\/strong><\/p>\n<p>After running this command, you\u2019ll ask a few questions, as shown below. Once all packages get installed, perform all CRUD operations based on contacts service using \/contacts route.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5280 size-full\" title=\"features generate service\" src=\"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/3-3.png\" alt=\"features generate service\" width=\"730\" height=\"447\" srcset=\"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/3-3.png 730w, https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/3-3-300x184.png 300w\" sizes=\"auto, (max-width: 730px) 100vw, 730px\" \/><\/p>\n<p>To define schema and model use contact model (\/src\/models\/contacts.model.js) and store it in the database. Here the database allows schema like MongoDB or Postgres.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5281 size-full\" title=\"MongoDB\" src=\"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/4-2.png\" alt=\"MongoDB\" width=\"730\" height=\"456\" srcset=\"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/4-2.png 730w, https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/4-2-300x187.png 300w\" sizes=\"auto, (max-width: 730px) 100vw, 730px\" \/><\/p>\n<p>CRUD methods are written like: contact class (\/src\/services\/contact\/contacts.class.js). Well, in this case, the file is next to empty, and the files instantiate the contact class that extends the service class.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5282 size-full\" title=\"service class.\" src=\"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/5-2.png\" alt=\"service class.\" width=\"730\" height=\"456\" srcset=\"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/5-2.png 730w, https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/5-2-300x187.png 300w\" sizes=\"auto, (max-width: 730px) 100vw, 730px\" \/><\/p>\n<p>Contact Hooks wrote in (\/src\/services\/contact\/contacts.hooks.js). It determines the workflow of our Node.js CRUD App operations, where the file looks like:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5283 size-full\" title=\"looks like:\" src=\"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/6-2.png\" alt=\"looks like:\" width=\"730\" height=\"456\" srcset=\"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/6-2.png 730w, https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/6-2-300x187.png 300w\" sizes=\"auto, (max-width: 730px) 100vw, 730px\" \/><\/p>\n<p>It merely means, before you perform any CRUD operations on contacts service, one needs to get a token or logged in to use the hooks functions.<br \/>\nIf you\u2019re looking to add some detailed information into your contact form, like full name, phone number, email into the hook then add in like:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5287 size-full\" title=\"hooks functions\" src=\"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/9-2.png\" alt=\"hooks functions\" width=\"878\" height=\"311\" srcset=\"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/9-2.png 878w, https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/9-2-300x106.png 300w, https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/9-2-768x272.png 768w\" sizes=\"auto, (max-width: 878px) 100vw, 878px\" \/><\/p>\n<p>But if you need to add functions like create, read, delete, update data then you need to write the below function after Hook. Understand how you can do this:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5288 size-full\" title=\"can do this:\" src=\"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/10-2.png\" alt=\"can do this:\" width=\"832\" height=\"325\" srcset=\"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/10-2.png 832w, https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/10-2-300x117.png 300w, https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/10-2-768x300.png 768w\" sizes=\"auto, (max-width: 832px) 100vw, 832px\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Get_to_know_how_Contact_service_works\"><\/span>Get to know how Contact service works<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Use Contact Service (\/src\/services\/contact\/contacts.service.js). It works into a single route service with defined models and hooks registered. Here the services are initialized, and it looks like as shown below:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5284 size-full\" title=\"shown below:\" src=\"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/7-2.png\" alt=\"shown below:\" width=\"730\" height=\"456\" srcset=\"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/7-2.png 730w, https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/7-2-300x187.png 300w\" sizes=\"auto, (max-width: 730px) 100vw, 730px\" \/><\/p>\n<p>features needs less code so it can lift the scenes inform of abstraction. Keep a note that features use different strategies to handle authentication like local, Google, OAuth, JWT, Github, etc.<\/p>\n<p>If you\u2019re looking to check the POST request, then use \/authentication route to login. It shows like:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5285 size-full\" title=\"shows like:\" src=\"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/8-2.png\" alt=\"shows like:\" width=\"730\" height=\"436\" srcset=\"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/8-2.png 730w, https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/8-2-300x179.png 300w\" sizes=\"auto, (max-width: 730px) 100vw, 730px\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Final_Words\"><\/span>Final Words<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Features.JS make it easy for us to prototype the application in minutes. It helps to build an easy-to-ready application where you need to opt for adding a more robust database. Few databases include MongoDB or Postgres as oppose to DB.<\/p>\n<p>Hope you learned how to build your RESTful API server quickly. These were only the basics, and you can go through the full guide and discover the features to implement advanced features. If you\u2019re looking for a plugin, or want to <a href=\"https:\/\/www.concettolabs.com\/hire-nodejs-developer\" target=\"_blank\" rel=\"nofollow\"><span style=\"text-decoration: underline;\"><strong>hire node js developer<\/strong><\/span><\/a>, then check out our <a href=\"https:\/\/www.concettolabs.com\/nodejs-development\" target=\"_blank\" rel=\"nofollow\"><span style=\"text-decoration: underline;\"><strong>Node.js development<\/strong><\/span><\/a> page.<\/p>\n<p>We have an excellent team who\u2019ll encourage you to create a new front-end application by using this framework. Build a log-in screen and CRUD pages, have fun by implementing the challenge.<\/p>\n<style>\n      .blog-block-2{background:url(https:\/\/www.concettolabs.com\/blog\/wp-content\/uploads\/2020\/08\/2.png);background-position: center;background-repeat: no-repeat;background-size: cover;width: 100%;margin: 0 auto;padding: 43px 60px 80px;text-align: center; }      .blog-block-2 h3{font-size: 40px;color: #fff;line-height: 60px;text-align:center;}      .blog-block-2 h5{font-size: 20px;position: relative;padding: 0 10px;margin-bottom: 50px;text-align:center;color: #fff!important;}      .blog-block-2 h5:after{content:'';position: absolute;top: 10px!important;width: 100px;height: 2px;background-color: #fff;margin-left: 10px;}      .blog-block-2 h5:before{content:'';position: absolute;top: 10px!important;width: 100px;height: 2px;background-color: #fff;margin-left: -110px;}      a.blog-btn-new{padding:10px 30px;background: #fbbf13;color: #fff!important;font-size: 18px;border: 0;cursor: pointer; }      .blog-block-2 b{color: #fbbf13;font-weight: bold;}blog-block a:before{display:none;}.blog-block-2 p{text-align:center;color:#fff!important}<\/style>\n<p>&nbsp;<\/p>\n<div class=\"blog-block-2\">\n<h3><span class=\"ez-toc-section\" id=\"How_to_Build_a_Simple_Nodejs_CRUD_App_with_FeaturesJS\"><\/span>How to Build a Simple <b>Node.js CRUD App with FeaturesJS?<\/b><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<h5>That&#8217;s exactly what we do<\/h5>\n<p><a class=\"blog-btn-new\" href=\"https:\/\/www.concettolabs.com\/inquiry\" target=\"_blank\" rel=\"nofollow\">Contact Us<\/a><\/p>\n<\/div>\n<p>&nbsp;<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_71 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/websitelaravel.concettoprojects.com\/blog\/how-to-build-a-simple-node-js-crud-app-with-featuresjs\/#Prerequisites\" title=\"Prerequisites\">Prerequisites<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/websitelaravel.concettoprojects.com\/blog\/how-to-build-a-simple-node-js-crud-app-with-featuresjs\/#Now_Install_FeaturesJS\" title=\"Now Install FeaturesJS\">Now Install FeaturesJS<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/websitelaravel.concettoprojects.com\/blog\/how-to-build-a-simple-node-js-crud-app-with-featuresjs\/#Generate_Service\" title=\"Generate Service\">Generate Service<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/websitelaravel.concettoprojects.com\/blog\/how-to-build-a-simple-node-js-crud-app-with-featuresjs\/#Get_to_know_how_Contact_service_works\" title=\"Get to know how Contact service works\">Get to know how Contact service works<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/websitelaravel.concettoprojects.com\/blog\/how-to-build-a-simple-node-js-crud-app-with-featuresjs\/#Final_Words\" title=\"Final Words\">Final Words<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/websitelaravel.concettoprojects.com\/blog\/how-to-build-a-simple-node-js-crud-app-with-featuresjs\/#How_to_Build_a_Simple_Nodejs_CRUD_App_with_FeaturesJS\" title=\"How to Build a Simple Node.js CRUD App with FeaturesJS?\">How to Build a Simple Node.js CRUD App with FeaturesJS?<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Any current project requires splitting the logic into front-end and back-end code. The main reason behind this is to move and promote code-re-usability. Let\u2019s say; we need to build a native mobile application that accesses back-end API. We can also develop a module that will be part of a large modular platform. One of the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":5276,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1],"tags":[2323,2324,2325,2326,2327],"class_list":["post-5275","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-featuresjs","tag-hire-node-js-development-services","tag-node-js-development","tag-node-js-latest-version","tag-node-js-crud-app"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to Build a Simple Node.js CRUD App with FeaturesJS?<\/title>\n<meta name=\"description\" content=\"If you\u2019re looking for a plugin, or want to hire node.js CRUD App development services, then check out our node Js development page.\" \/>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Build a Simple Node.js CRUD App with FeaturesJS?\" \/>\n<meta property=\"og:description\" content=\"If you\u2019re looking for a plugin, or want to hire node.js CRUD App development services, then check out our node Js development page.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/websitelaravel.concettoprojects.com\/blog\/how-to-build-a-simple-node-js-crud-app-with-featuresjs\/\" \/>\n<meta property=\"og:site_name\" content=\"concettolabs\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/manish.patel.710\" \/>\n<meta property=\"article:published_time\" content=\"2020-11-18T11:53:52+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/crud-app-2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1170\" \/>\n\t<meta property=\"og:image:height\" content=\"540\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Manish Patel\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/withmanish\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Manish Patel\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/websitelaravel.concettoprojects.com\/blog\/how-to-build-a-simple-node-js-crud-app-with-featuresjs\/\",\"url\":\"https:\/\/websitelaravel.concettoprojects.com\/blog\/how-to-build-a-simple-node-js-crud-app-with-featuresjs\/\",\"name\":\"How to Build a Simple Node.js CRUD App with FeaturesJS?\",\"isPartOf\":{\"@id\":\"https:\/\/websitelaravel.concettoprojects.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/websitelaravel.concettoprojects.com\/blog\/how-to-build-a-simple-node-js-crud-app-with-featuresjs\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/websitelaravel.concettoprojects.com\/blog\/how-to-build-a-simple-node-js-crud-app-with-featuresjs\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/crud-app-2.png\",\"datePublished\":\"2020-11-18T11:53:52+00:00\",\"dateModified\":\"2020-11-18T11:53:52+00:00\",\"author\":{\"@id\":\"https:\/\/websitelaravel.concettoprojects.com\/blog\/#\/schema\/person\/b27e0500ea2f536f7f0f5e7ab13566b9\"},\"description\":\"If you\u2019re looking for a plugin, or want to hire node.js CRUD App development services, then check out our node Js development page.\",\"breadcrumb\":{\"@id\":\"https:\/\/websitelaravel.concettoprojects.com\/blog\/how-to-build-a-simple-node-js-crud-app-with-featuresjs\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/websitelaravel.concettoprojects.com\/blog\/how-to-build-a-simple-node-js-crud-app-with-featuresjs\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/websitelaravel.concettoprojects.com\/blog\/how-to-build-a-simple-node-js-crud-app-with-featuresjs\/#primaryimage\",\"url\":\"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/crud-app-2.png\",\"contentUrl\":\"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/crud-app-2.png\",\"width\":1170,\"height\":540,\"caption\":\"How to Build a Simple Node.js CRUD App with FeaturesJS?\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/websitelaravel.concettoprojects.com\/blog\/how-to-build-a-simple-node-js-crud-app-with-featuresjs\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/websitelaravel.concettoprojects.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Build a Simple Node.js CRUD App with FeaturesJS\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/websitelaravel.concettoprojects.com\/blog\/#website\",\"url\":\"https:\/\/websitelaravel.concettoprojects.com\/blog\/\",\"name\":\"concettolabs\",\"description\":\"Just another WordPress site\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/websitelaravel.concettoprojects.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/websitelaravel.concettoprojects.com\/blog\/#\/schema\/person\/b27e0500ea2f536f7f0f5e7ab13566b9\",\"name\":\"Manish Patel\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/websitelaravel.concettoprojects.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2022\/03\/manish2-96x96.png\",\"contentUrl\":\"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2022\/03\/manish2-96x96.png\",\"caption\":\"Manish Patel\"},\"description\":\"Manish Patel is a Co-Founder of Concetto Labs, a leading mobile app development company specialized in android and iOS app development. We provide a one-stop solution for all IT related services.\",\"sameAs\":[\"https:\/\/websitelaravel.concettoprojects.com\/blog\",\"https:\/\/www.facebook.com\/manish.patel.710\",\"https:\/\/in.linkedin.com\/in\/manishpatel2509\",\"https:\/\/x.com\/https:\/\/twitter.com\/withmanish\"],\"url\":\"https:\/\/websitelaravel.concettoprojects.com\/blog\/author\/manish-patel\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Build a Simple Node.js CRUD App with FeaturesJS?","description":"If you\u2019re looking for a plugin, or want to hire node.js CRUD App development services, then check out our node Js development page.","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"en_US","og_type":"article","og_title":"How to Build a Simple Node.js CRUD App with FeaturesJS?","og_description":"If you\u2019re looking for a plugin, or want to hire node.js CRUD App development services, then check out our node Js development page.","og_url":"https:\/\/websitelaravel.concettoprojects.com\/blog\/how-to-build-a-simple-node-js-crud-app-with-featuresjs\/","og_site_name":"concettolabs","article_author":"https:\/\/www.facebook.com\/manish.patel.710","article_published_time":"2020-11-18T11:53:52+00:00","og_image":[{"width":1170,"height":540,"url":"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/crud-app-2.png","type":"image\/png"}],"author":"Manish Patel","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/withmanish","twitter_misc":{"Written by":"Manish Patel","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/websitelaravel.concettoprojects.com\/blog\/how-to-build-a-simple-node-js-crud-app-with-featuresjs\/","url":"https:\/\/websitelaravel.concettoprojects.com\/blog\/how-to-build-a-simple-node-js-crud-app-with-featuresjs\/","name":"How to Build a Simple Node.js CRUD App with FeaturesJS?","isPartOf":{"@id":"https:\/\/websitelaravel.concettoprojects.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/websitelaravel.concettoprojects.com\/blog\/how-to-build-a-simple-node-js-crud-app-with-featuresjs\/#primaryimage"},"image":{"@id":"https:\/\/websitelaravel.concettoprojects.com\/blog\/how-to-build-a-simple-node-js-crud-app-with-featuresjs\/#primaryimage"},"thumbnailUrl":"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/crud-app-2.png","datePublished":"2020-11-18T11:53:52+00:00","dateModified":"2020-11-18T11:53:52+00:00","author":{"@id":"https:\/\/websitelaravel.concettoprojects.com\/blog\/#\/schema\/person\/b27e0500ea2f536f7f0f5e7ab13566b9"},"description":"If you\u2019re looking for a plugin, or want to hire node.js CRUD App development services, then check out our node Js development page.","breadcrumb":{"@id":"https:\/\/websitelaravel.concettoprojects.com\/blog\/how-to-build-a-simple-node-js-crud-app-with-featuresjs\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/websitelaravel.concettoprojects.com\/blog\/how-to-build-a-simple-node-js-crud-app-with-featuresjs\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/websitelaravel.concettoprojects.com\/blog\/how-to-build-a-simple-node-js-crud-app-with-featuresjs\/#primaryimage","url":"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/crud-app-2.png","contentUrl":"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2020\/11\/crud-app-2.png","width":1170,"height":540,"caption":"How to Build a Simple Node.js CRUD App with FeaturesJS?"},{"@type":"BreadcrumbList","@id":"https:\/\/websitelaravel.concettoprojects.com\/blog\/how-to-build-a-simple-node-js-crud-app-with-featuresjs\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/websitelaravel.concettoprojects.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Build a Simple Node.js CRUD App with FeaturesJS"}]},{"@type":"WebSite","@id":"https:\/\/websitelaravel.concettoprojects.com\/blog\/#website","url":"https:\/\/websitelaravel.concettoprojects.com\/blog\/","name":"concettolabs","description":"Just another WordPress site","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/websitelaravel.concettoprojects.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/websitelaravel.concettoprojects.com\/blog\/#\/schema\/person\/b27e0500ea2f536f7f0f5e7ab13566b9","name":"Manish Patel","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/websitelaravel.concettoprojects.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2022\/03\/manish2-96x96.png","contentUrl":"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-content\/uploads\/2022\/03\/manish2-96x96.png","caption":"Manish Patel"},"description":"Manish Patel is a Co-Founder of Concetto Labs, a leading mobile app development company specialized in android and iOS app development. We provide a one-stop solution for all IT related services.","sameAs":["https:\/\/websitelaravel.concettoprojects.com\/blog","https:\/\/www.facebook.com\/manish.patel.710","https:\/\/in.linkedin.com\/in\/manishpatel2509","https:\/\/x.com\/https:\/\/twitter.com\/withmanish"],"url":"https:\/\/websitelaravel.concettoprojects.com\/blog\/author\/manish-patel\/"}]}},"_links":{"self":[{"href":"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-json\/wp\/v2\/posts\/5275","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-json\/wp\/v2\/comments?post=5275"}],"version-history":[{"count":0,"href":"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-json\/wp\/v2\/posts\/5275\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-json\/wp\/v2\/media\/5276"}],"wp:attachment":[{"href":"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-json\/wp\/v2\/media?parent=5275"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-json\/wp\/v2\/categories?post=5275"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/websitelaravel.concettoprojects.com\/blog\/wp-json\/wp\/v2\/tags?post=5275"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}