{"id":1092,"date":"2017-10-10T09:34:09","date_gmt":"2017-10-10T06:34:09","guid":{"rendered":"https:\/\/community.virtono.com\/?p=1092"},"modified":"2017-10-22T15:53:56","modified_gmt":"2017-10-22T12:53:56","slug":"node-js","status":"publish","type":"post","link":"https:\/\/www.virtono.com\/community\/tutorial-how-to\/node-js\/","title":{"rendered":"Node.js"},"content":{"rendered":"<header class=\"entry-header\"><\/header>\n<div class=\"entry-content\">\n<h3 id=\"seriesName\">Series:\u00a0Introduction to the MEAN Stack<\/h3>\n<ul id=\"seriesList\">\n<li><a href=\"https:\/\/wp.me\/p7ISfL-hs\" target=\"_blank\" rel=\"noopener\">Part 1: Definition of the MEAN stack<\/a><\/li>\n<li><a href=\"https:\/\/wp.me\/p7ISfL-hz\" target=\"_blank\" rel=\"noopener\">Part 2:\u00a0Setup of the MEAN stack<\/a><\/li>\n<li><a href=\"https:\/\/wp.me\/p7ISfL-hC\" target=\"_blank\" rel=\"noopener\">Part 3:\u00a0Node.js<\/a><\/li>\n<li><a href=\"https:\/\/wp.me\/s7ISfL-npm\" target=\"_blank\" rel=\"noopener\">Part 4:\u00a0npm<\/a><\/li>\n<li><a href=\"https:\/\/wp.me\/s7ISfL-connect\" target=\"_blank\" rel=\"noopener\">Part 5:\u00a0Connect<\/a><\/li>\n<li><a href=\"https:\/\/wp.me\/s7ISfL-express\" target=\"_blank\" rel=\"noopener\">Part 6:\u00a0Express<\/a><\/li>\n<li><a href=\"https:\/\/wp.me\/s7ISfL-mongodb\" target=\"_blank\" rel=\"noopener\">Part 7:\u00a0MongoDB<\/a><\/li>\n<li><a href=\"https:\/\/wp.me\/s7ISfL-mongodb\" target=\"_blank\" rel=\"noopener\">Part 8:\u00a0Mongoose<\/a><\/li>\n<li><a href=\"https:\/\/wp.me\/s7ISfL-rest\" target=\"_blank\" rel=\"noopener\">Part 9:\u00a0REST<\/a><\/li>\n<li><a href=\"https:\/\/wp.me\/s7ISfL-baucis\" target=\"_blank\" rel=\"noopener\">Part 10:\u00a0Baucis<\/a><\/li>\n<li><a href=\"https:\/\/wp.me\/s7ISfL-bower\" target=\"_blank\" rel=\"noopener\">Part 11:\u00a0Bower<\/a><\/li>\n<li><a href=\"https:\/\/wp.me\/p7ISfL-i1\" target=\"_blank\" rel=\"noopener\">Part 12:\u00a0AngularJS<\/a><\/li>\n<li><a href=\"https:\/\/wp.me\/p7ISfL-i4\" target=\"_blank\" rel=\"noopener\">Part 13:\u00a0Restangular<\/a><\/li>\n<\/ul>\n<p>In this article, I tell you what\u00a0Node.js is\u00a0exactly and what particular features it has.\u00a0We also program a working server in five code lines!<span id=\"more-3610\"><\/span><\/p>\n<p>Node.js (short node) is a server-side runtime environment for JavaScript based on\u00a0\u00a0Google&#8217;s\u00a0V8 engine\u00a0.\u00a0Node uses an event-based and non-blocking input-output model and is thus suitable for fast and scalable network applications.\u00a0But what does this mean in practice?<\/p>\n<div>\n<p>The process of calling a web page with the LAMP stack mentioned in the first article is\u00a0<i>approximately as<\/i>\u00a0follows: The browser starts a\u00a0<strong>request<\/strong>\u00a0with a URL that arrives at the Apache server.\u00a0Depending on the URL, Apache calls various PHP scripts, which build a\u00a0<strong>response<\/strong>\u00a0&#8211; the actual website.\u00a0The PHP scripts can retrieve data from the MySQL database while filling the response with these data.\u00a0Once all PHP scripts have been processed, the website has been completely output.\u00a0Only\u00a0<i>now<\/i>\u00a0can new requests for responses of PHP be converted.<br \/>\nThis is different for Node.\u00a0Node takes on the tasks of Apache and PHP alike.\u00a0It accepts a request and calls corresponding JavaScript scripts to respond with a response.\u00a0Data queries from Node can be sent to a MongoDB database (or any other database).\u00a0Already\u00a0<i>now<\/i>\u00a0node can start work off new requests because the query the database takes some time to complete.\u00a0This time would be unused for the LAMP stack.\u00a0When the database query is terminated, Node reverts the original request to a response as soon as the corresponding process time is free.\u00a0This jump back to a previous request is made via\u00a0<strong>callbacks<\/strong>\u00a0solved, functions that are executed when a particular event (such as the end of a database query) arrives.<\/p>\n<p>However, this does not\u00a0<i>exactly correspond<\/i>\u00a0to reality.\u00a0Through other threads or processes, the LAMP stack can process further requests for responses despite a running database query.\u00a0However, their number is limited by the hardware and thus are scaled.<\/p>\n<p>Node was developed by Ryan Dahl, who has given the project responsibility to Isaac Schlueter.<\/p>\n<p>In essence, Node is a C ++ project, but its APIs are controlled by JavaScript.<\/p>\n<p>This series of articles is primarily intended to explain the MEAN stack in a practical way.\u00a0For this reason, in the following example, a complete HTTP server with a node is already being programmed with this short definition.\u00a0Just a few lines of code are sufficient:<\/p>\n<div class=\"codecolorer-container javascript default\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"line-numbers\">\n<div>1<br \/>\n2<br \/>\n3<br \/>\n4<br \/>\n5<\/div>\n<\/td>\n<td>\n<div class=\"javascript codecolorer\"><span class=\"kw2\">var<\/span>\u00a0http\u00a0<span class=\"sy0\">=<\/span>\u00a0require\u00a0<span class=\"br0\">(\u00a0<\/span><span class=\"st0\">&#8216;http&#8217;\u00a0<\/span><span class=\"br0\">)\u00a0<\/span><span class=\"sy0\">;\u00a0<\/span><br \/>\nhttp.\u00a0<span class=\"me1\">createServer\u00a0<\/span><span class=\"br0\">(\u00a0<\/span><span class=\"kw2\">function\u00a0<\/span><span class=\"br0\">(<\/span>\u00a0req\u00a0<span class=\"sy0\">,<\/span>\u00a0res\u00a0<span class=\"br0\">)\u00a0<\/span><span class=\"br0\">{<\/span><br \/>\nres.\u00a0<span class=\"me1\">writeHead\u00a0<\/span><span class=\"br0\">(\u00a0<\/span><span class=\"nu0\">200\u00a0<\/span><span class=\"sy0\">,\u00a0<\/span><span class=\"br0\">{\u00a0<\/span><span class=\"st0\">&#8216;\u00a0<\/span><span class=\"me1\">ContentType\u00a0<\/span><span class=\"st0\">&#8216;\u00a0<\/span><span class=\"sy0\">:\u00a0<\/span><span class=\"st0\">&#8216;text \/ plain&#8217;\u00a0<\/span><span class=\"br0\">}\u00a0<\/span><span class=\"br0\">)\u00a0<\/span><span class=\"sy0\">;<\/span><br \/>\nres\u00a0<span class=\"me1\">.end\u00a0<\/span><span class=\"br0\">(\u00a0<\/span><span class=\"st0\">&#8216;HelloWorld\u00a0<span class=\"es0\">\\ n<\/span>\u00a0&#8216;\u00a0<\/span><span class=\"br0\">)\u00a0<\/span><span class=\"sy0\">;\u00a0<\/span><br \/>\n<span class=\"br0\">}\u00a0<\/span><span class=\"br0\">)<\/span>\u00a0.\u00a0<span class=\"me1\">listen\u00a0<\/span><span class=\"br0\">(\u00a0<\/span><span class=\"nu0\">1337\u00a0<\/span><span class=\"sy0\">,\u00a0<\/span><span class=\"st0\">&#8216;127.0.0.1&#8217;\u00a0<\/span><span class=\"br0\">)\u00a0<\/span><span class=\"sy0\">;<\/span><\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Saves this code to a file called\u00a0<code class=\"codecolorer powershell default\"><span class=\"powershell\">server.js<\/span><\/code>\u00a0and then starts the following command with the node server (\u00a0must be replaced by you with the real path to\u00a0\u00a0):<code class=\"codecolorer powershell default\"><span class=\"powershell\"><span class=\"sy0\">\/<\/span>pfad<span class=\"sy0\">\/<\/span>zu<\/span><\/code><code class=\"codecolorer powershell default\"><span class=\"powershell\">server.js<\/span><\/code><\/p>\n<div class=\"codecolorer-container powershell default\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"line-numbers\">\n<div>1<\/div>\n<\/td>\n<td>\n<div class=\"powershell codecolorer\">$ node\u00a0<span class=\"sy0\">\/<\/span>\u00a0path\u00a0<span class=\"sy0\">\/<\/span>\u00a0to\u00a0<span class=\"sy0\">\/<\/span>\u00a0server.js<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>If you now enter\u00a0the address line\u00a0in any browser\u00a0http:\/\/127.0.0.1:1337\/\u00a0, you will get a &#8220;Hello World&#8221;.<\/p>\n<div id=\"attachment_3611\" class=\"wp-caption aligncenter\">\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"3611\" data-permalink=\"https:\/\/www.virtono.com\/community\/tutorial-how-to\/how-to-install-gitlab-ce-with-docker-on-ubuntu-22-04\/attachment\/screenshot-2023-06-22-at-15-31-28\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2023\/06\/Screenshot-2023-06-22-at-15.31.28.png?fit=1400%2C400&amp;ssl=1\" data-orig-size=\"1400,400\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Screenshot-2023-06-22-at-15.31.28\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2023\/06\/Screenshot-2023-06-22-at-15.31.28.png?fit=750%2C215&amp;ssl=1\" class=\" wp-image-3611 \" src=\"https:\/\/i0.wp.com\/www.senaeh.de\/wp-content\/uploads\/2013\/10\/127.0.0.1_1337.png?resize=281%2C163\" alt=\"\" width=\"281\" height=\"163\" \/><\/p>\n<p class=\"wp-caption-text\">The node server works!<\/p>\n<\/div>\n<p>With a ^ C within the terminal you can terminate the Node server.<\/p>\n<p>What happened?\u00a0<code class=\"codecolorer javascript default\"><span class=\"javascript\">require<\/span><\/code>The module is\u00a0<code class=\"codecolorer javascript default\"><span class=\"javascript\">http<\/span><\/code>\u00a0called\u00a0with the function in the first code line\u00a0\u00a0.\u00a0The\u00a0<code class=\"codecolorer javascript default\"><span class=\"javascript\">http<\/span><\/code>\u00a0module has the function\u00a0<code class=\"codecolorer javascript default\"><span class=\"javascript\">createServer<\/span><\/code>, which literally a server can create.\u00a0The test in the browser has proved it!\u00a0The function contains a callback with the two parameters\u00a0<code class=\"codecolorer javascript default\"><span class=\"javascript\">req<\/span><\/code>and\u00a0<code class=\"codecolorer javascript default\"><span class=\"javascript\">res<\/span><\/code>, which are for request and response.\u00a0The callback is called at each request at\u00a0http:\/\/127.0.0.1:1337\/\u00a0.\u00a0The\u00a0<code class=\"codecolorer javascript default\"><span class=\"javascript\">req<\/span><\/code>object contains, for example, information about the URL, which is not yet used in this example.\u00a0The\u00a0<code class=\"codecolorer javascript default\"><span class=\"javascript\">res<\/span><\/code>text &#8220;Hello World&#8221; is output from\u00a0the\u00a0object.<\/p>\n<p>By the way: Node must be restarted for each code change, so that the change takes effect!\u00a0This is not explicitly mentioned in the following examples and should therefore be kept in mind.<\/p>\n<p>Any node code is organized in modules based on the\u00a0CommonJS\u00a0standard\u00a0\u00a0.\u00a0<code class=\"codecolorer javascript default\"><span class=\"javascript\">http<\/span><\/code>\u00a0is a so-called\u00a0<em>core module<\/em>\u00a0, which is a module, which is delivered with Node itself.\u00a0All core modules and their APIs can be found at\u00a0http:\/\/nodejs.org\/api\/\u00a0.\u00a0A component of CommonJS is the function\u00a0<code class=\"codecolorer javascript default\"><span class=\"javascript\">require<\/span><\/code>that\u00a0loads the\u00a0modules.\u00a0Because each node code is in modules, they can always be\u00a0<i>required<\/i>\u00a0.\u00a0Without knowing it, we have written with the file\u00a0<code class=\"codecolorer powershell default\"><span class=\"powershell\">server.js<\/span><\/code>\u00a0our first node module, which can be required by other modules.\u00a0We can also test this with another module, which we\u00a0\u00a0store\u00a0in a file\u00a0:<code class=\"codecolorer powershell default\"><span class=\"powershell\">require<span class=\"sy0\">-<\/span>server.js<\/span><\/code><\/p>\n<div class=\"codecolorer-container javascript default\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"line-numbers\">\n<div>1<\/div>\n<\/td>\n<td>\n<div class=\"javascript codecolorer\"><span class=\"kw2\">var<\/span>\u00a0http\u00a0<span class=\"sy0\">=<\/span>\u00a0require\u00a0<span class=\"br0\">(\u00a0<\/span><span class=\"st0\">&#8216;.\/server&#8217;\u00a0<\/span><span class=\"br0\">)\u00a0<\/span><span class=\"sy0\">;<\/span><\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div>\n<p>The file\u00a0\u00a0contains only one code line and must be in the same folder as\u00a0\u00a0.\u00a0Use the following command to run the file in Node:<code class=\"codecolorer powershell default\"><span class=\"powershell\">require<span class=\"sy0\">-<\/span>server.js<\/span><\/code><code class=\"codecolorer powershell default\"><span class=\"powershell\">server.js<\/span><\/code><\/p>\n<div class=\"codecolorer-container powershell default\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"line-numbers\">\n<div>1<\/div>\n<\/td>\n<td>\n<div class=\"powershell codecolorer\">$ node\u00a0<span class=\"sy0\">\/<\/span>\u00a0path\u00a0<span class=\"sy0\">\/<\/span>\u00a0to\u00a0<span class=\"sy0\">\/<\/span>\u00a0require\u00a0<span class=\"sy0\">&#8211;<\/span>\u00a0server.js<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>If you now\u00a0call\u00a0again\u00a0http:\/\/127.0.0.1:1337\/\u00a0in the browser, then you get as before a &#8220;Hello World&#8221;.\u00a0The\u00a0\u00a0inside of\u00a0\u00a0shows that a module\u00a0\u00a0should be loaded\u00a0<i>in the same folder<\/i>\u00a0with the filename\u00a0.\u00a0The file transmission\u00a0\u00a0can be omitted since it is automatically accepted by Node.<code class=\"codecolorer javascript default\"><span class=\"javascript\">.<span class=\"sy0\">\/<\/span><\/span><\/code><code class=\"codecolorer javascript default\"><span class=\"javascript\">require<\/span><\/code><i><\/i><code class=\"codecolorer javascript default\"><span class=\"javascript\">server<\/span><\/code><code class=\"codecolorer javascript default\"><span class=\"javascript\">.<span class=\"me1\">js<\/span><\/span><\/code><\/p>\n<p>In order for you to create a useful application from this simple and still useless server, we need a few frameworks that help us to develop.\u00a0How you can easily manage your frameworks (or Node Module), I&#8217;ll show you in the next article.<\/p>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Series:\u00a0Introduction to the MEAN Stack Part 1: Definition of the MEAN stack Part 2:\u00a0Setup of the MEAN stack Part 3:\u00a0Node.js Part 4:\u00a0npm Part 5:\u00a0Connect Part 6:\u00a0Express Part 7:\u00a0MongoDB Part 8:\u00a0Mongoose Part 9:\u00a0REST Part 10:\u00a0Baucis Part 11:\u00a0Bower Part 12:\u00a0AngularJS Part 13:\u00a0Restangular In this article, I tell you what\u00a0Node.js is\u00a0exactly and what<\/p>\n","protected":false},"author":3,"featured_media":1093,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[5,3],"tags":[],"class_list":["post-1092","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-knowledgebase","category-tutorial-how-to"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/10\/nodejs-new-pantone-black.png?fit=1843%2C1129&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p7ISfL-hC","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":1089,"url":"https:\/\/www.virtono.com\/community\/tutorial-how-to\/setup-of-the-mean-stack\/","url_meta":{"origin":1092,"position":0},"title":"Setup of the MEAN stack","author":"Daniel Draga","date":"October 9, 2017","format":false,"excerpt":"Series:\u00a0Introduction to the MEAN Stack Part 1: Definition of the MEAN stack Part 2:\u00a0Setup of the MEAN stack Part 3:\u00a0Node.js Part 4:\u00a0npm Part 5:\u00a0Connect Part 6:\u00a0Express Part 7:\u00a0MongoDB Part 8:\u00a0Mongoose Part 9:\u00a0REST Part 10:\u00a0Baucis Part 11:\u00a0Bower Part 12:\u00a0AngularJS Part 13:\u00a0Restangular In this article, we will lay out the basics for\u2026","rel":"","context":"In &quot;Tutorials&quot;","block_context":{"text":"Tutorials","link":"https:\/\/www.virtono.com\/community\/category\/tutorial-how-to\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/10\/meanjs-1024x492.png?fit=1024%2C492&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/10\/meanjs-1024x492.png?fit=1024%2C492&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/10\/meanjs-1024x492.png?fit=1024%2C492&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/10\/meanjs-1024x492.png?fit=1024%2C492&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":1082,"url":"https:\/\/www.virtono.com\/community\/knowledgebase\/definition-of-the-mean-stack\/","url_meta":{"origin":1092,"position":1},"title":"Definition of the MEAN stack","author":"Shreyash Sharma","date":"October 9, 2017","format":false,"excerpt":"Series:\u00a0Introduction to the MEAN Stack Part 1: Definition of the MEAN stack Part 2:\u00a0Setup of the MEAN stack Part 3:\u00a0Node.js Part 4:\u00a0npm Part 5:\u00a0Connect Part 6:\u00a0Express Part 7:\u00a0MongoDB Part 8:\u00a0Mongoose Part 9:\u00a0REST Part 10:\u00a0Baucis Part 11:\u00a0Bower Part 12:\u00a0AngularJS Part 13:\u00a0Restangular In a new article series, I would like to\u00a0offer\u00a0you an\u2026","rel":"","context":"In &quot;Knowledgebase&quot;","block_context":{"text":"Knowledgebase","link":"https:\/\/www.virtono.com\/community\/category\/knowledgebase\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/10\/Mean.jpg?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/10\/Mean.jpg?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/10\/Mean.jpg?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/10\/Mean.jpg?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/10\/Mean.jpg?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":2927,"url":"https:\/\/www.virtono.com\/community\/tutorial-how-to\/how-to-install-node-js-on-ubuntu-20-04\/","url_meta":{"origin":1092,"position":2},"title":"How To Install Node.js on Ubuntu 20.04","author":"George B.","date":"August 3, 2022","format":false,"excerpt":"What is Node.js? Node.js is a back-end JavaScript runtime environment that runs on the V8 engine and executes JavaScript code outside of a web browser and was designed to build scalable network applications. Step 1 - Update the server package index sudo apt update Step 2 - Install Node.js on\u2026","rel":"","context":"In &quot;Tutorials&quot;","block_context":{"text":"Tutorials","link":"https:\/\/www.virtono.com\/community\/category\/tutorial-how-to\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/10\/nodejs-new-pantone-black.png?fit=1200%2C735&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/10\/nodejs-new-pantone-black.png?fit=1200%2C735&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/10\/nodejs-new-pantone-black.png?fit=1200%2C735&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/10\/nodejs-new-pantone-black.png?fit=1200%2C735&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/10\/nodejs-new-pantone-black.png?fit=1200%2C735&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":1114,"url":"https:\/\/www.virtono.com\/community\/tutorial-how-to\/bower\/","url_meta":{"origin":1092,"position":3},"title":"Bower","author":"Shreyash Sharma","date":"October 15, 2017","format":false,"excerpt":"Series:\u00a0Introduction to the MEAN Stack Part 1: Definition of the MEAN stack Part 2:\u00a0Setup of the MEAN stack Part 3:\u00a0Node.js Part 4:\u00a0npm Part 5:\u00a0Connect Part 6:\u00a0Express Part 7:\u00a0MongoDB Part 8:\u00a0Mongoose Part 9:\u00a0REST Part 10:\u00a0Baucis Part 11:\u00a0Bower Part 12:\u00a0AngularJS Part 13:\u00a0Restangular Before we develop a web application with AngularJS, I introduce\u2026","rel":"","context":"In &quot;Knowledgebase&quot;","block_context":{"text":"Knowledgebase","link":"https:\/\/www.virtono.com\/community\/category\/knowledgebase\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/10\/bower-logo.png?fit=1024%2C900&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/10\/bower-logo.png?fit=1024%2C900&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/10\/bower-logo.png?fit=1024%2C900&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/10\/bower-logo.png?fit=1024%2C900&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":561,"url":"https:\/\/www.virtono.com\/community\/tutorial-how-to\/how-to-install-node-js-on-centos\/","url_meta":{"origin":1092,"position":4},"title":"How to Install Node.JS on CentOS","author":"Daniel Draga","date":"September 1, 2016","format":false,"excerpt":"Node.js is a server side platform, very powerful JavaScript-based framework\/platform built on Google Chrome's JavaScript V8 Engine. It is used to develop I\/O intensive web applications like video streaming sites, single-page applications, and other web applications. Node.js is an open source, cross-platform runtime environment for developing server-side and networking applications.\u2026","rel":"","context":"In &quot;Tutorials&quot;","block_context":{"text":"Tutorials","link":"https:\/\/www.virtono.com\/community\/category\/tutorial-how-to\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2016\/09\/Install-Node.js.jpg?fit=484%2C230&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":1095,"url":"https:\/\/www.virtono.com\/community\/tutorial-how-to\/npm\/","url_meta":{"origin":1092,"position":5},"title":"npm","author":"Daniel Draga","date":"October 10, 2017","format":false,"excerpt":"Series:\u00a0Introduction to the MEAN Stack Part 1: Definition of the MEAN stack Part 2:\u00a0Setup of the MEAN stack Part 3:\u00a0Node.js Part 4:\u00a0npm Part 5:\u00a0Connect Part 6:\u00a0Express Part 7:\u00a0MongoDB Part 8:\u00a0Mongoose Part 9:\u00a0REST Part 10:\u00a0Baucis Part 11:\u00a0Bower Part 12:\u00a0AngularJS Part 13:\u00a0Restangular npm\u00a0\u00a0is a package manager for managing modules.\u00a0That is, it makes\u2026","rel":"","context":"In &quot;Knowledgebase&quot;","block_context":{"text":"Knowledgebase","link":"https:\/\/www.virtono.com\/community\/category\/knowledgebase\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/10\/weekly-header-grace-hopper.png?fit=1200%2C498&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/10\/weekly-header-grace-hopper.png?fit=1200%2C498&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/10\/weekly-header-grace-hopper.png?fit=1200%2C498&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/10\/weekly-header-grace-hopper.png?fit=1200%2C498&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/10\/weekly-header-grace-hopper.png?fit=1200%2C498&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/posts\/1092","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/comments?post=1092"}],"version-history":[{"count":2,"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/posts\/1092\/revisions"}],"predecessor-version":[{"id":1189,"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/posts\/1092\/revisions\/1189"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/media\/1093"}],"wp:attachment":[{"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/media?parent=1092"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/categories?post=1092"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/tags?post=1092"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}