I am new to the world of Node.js.I am trying to learn through an example.I have encountered the following statements in the "app.js" .
var express = require("express");----->1
var app = express(); --------->2
So I understand the first statement is to load express module .What is the need for second statement??
Inorder to load a MYSQL module in my app.js we use
var mysql = require("MYSQL");
We access SQL properties by mysql.connect("") etc.
so why cannot we write "express.get()" instead of "app.get()"????
Why do we need var express = require("express");??
Any help would be highly appreciated.
I am new to the world of Node.js.I am trying to learn through an example.I have encountered the following statements in the "app.js" .
var express = require("express");----->1
var app = express(); --------->2
So I understand the first statement is to load express module .What is the need for second statement??
Inorder to load a MYSQL module in my app.js we use
var mysql = require("MYSQL");
We access SQL properties by mysql.connect("") etc.
so why cannot we write "express.get()" instead of "app.get()"????
Why do we need var express = require("express");??
Any help would be highly appreciated.
Share Improve this question edited Mar 10, 2016 at 20:37 Shadow 34.2k10 gold badges63 silver badges74 bronze badges asked Mar 10, 2016 at 20:10 RisTeRisTe 1231 silver badge4 bronze badges 3 |2 Answers
Reset to default 15express
is a module that can be used to create more than one application.
var ex = require('express')
puts this module into the variable ex
. Once you have a reference to the module, you can use it to create application. Each module has its own API. According to the expressjs documentation - http://expressjs.com/en/4x/api.html, the module is in fact a function that can be used to create applications
var app1 = ex();
var app2 = ex();
you could for example want to have several web applications listening on different ports.
If you only want one application (but it would be less readable) you could write
var app = require('express')();
The real difference between require('express')
and express()
is that require('express')
allows you to have access to any public functions or properties exposed by module.exports
.
The express()
syntax is the equivalent of saying new express()
. It creates a new instance of express
that you can then assign to a variable and interact with.
That is why the standard creation pattern for Express is
// Import the Express module
var express = require('express');
// Create a new Express Instance
var app = express();
createPool
,createPoolCluster
andcreateConnection
, forexpress
only one, this is most likely the reason for this difference. But in the end its up to the library creator how to design the api. – t.niese Commented Mar 10, 2016 at 20:18app.get(...)
is equal toconnection.query(...)
andexpress()
is equal tomysql.createConnection(...)
.mysql
is in this case just a namespace grouping the factory functions of the mysql library, express returns the main factory function directly. They also could have decided that you need to dovar app = express.createApp()
but they didn't. – t.niese Commented Mar 10, 2016 at 20:34