express = exiger('express')
C'est ainsi que le processus fonctionne alors que j'essayais de comprendre ce qui se passait dans les coulisses de cette déclaration. Maintenant, jetons un coup d'œil à la boîte ;)
commençons d'abord par savoir ce qui est réellement express dans require .
express est le package de framework que vous avez installé lorsque vous avez utilisé :
npm istall express
Comme vous le voyez ici, nous avons des fonctions définies et d'autres éléments, et là, nous exportons des éléments, y compris des fonctions.
vous ne savez pas ce qu'on entend par exporter?
Exporter ici, c'est comme exporter des biens dans la vraie vie, vous ne faites que déplacer des choses vers un autre endroit pour pouvoir les utiliser là-bas ;
D'accord?
Dans JS, vous pouvez exporter des fonctions, des propriétés et d'autres éléments vers un autre fichier en utilisant :
module.exports = (stuff you want to export)
Dans un fichier.js, nous avons cette fonction sayHi :
// a.js
const sayHi = () => { return 'Hi' }
En ajoutant cette ligne, nous avons indiqué ci-dessus qui est :
// a.js
module.exports = sayHi
// a.js
const sayHi = () => { return 'Hi' }
module.exports = sayHi
Non, il faut l'importer, pour pouvoir l'utiliser ! c'est de la logique.
mais comment alors ?
En utilisant la ligne ci-dessous. C'est expressif : nous avons besoin de ce module donc nous en avons besoin.
require(module location);
// b.js
const sayHi = require('./a.js');
Maintenant, nous avons une référence à la fonction et pouvons l'appeler en ajoutant () à la référence ;
// b.js
const sayHi = require('./a.js');
console.log( sayHi() ) //output: Hi
on peut voir ça :
//express.js module
exports = module.exports = createApplication;
//express.js module
exports.static = require('serve-static');
exports.json = bodyParser.json
exports.query = require('./middleware/query');
exports.raw = bodyParser.raw
exports ici est juste une référence à module.exports de sorte qu'au lieu de dire module.exports.json vous pouvez juste ce raccourci directement exports.json.
Bien?
allons dans le fichier app.js où nous avons créé notre serveur et ajouté du routage, nous n'avons plus besoin de voir que la première ligne :
// app.js
const express = require('express')
essayons en le connectant:
// app.js
const express = require('express')
console.log(express)
[Function: createApplication] {
application: {
init: [Function: init],
defaultConfiguration: [Function: defaultConfiguration],
lazyrouter: [Function: lazyrouter],
handle: [Function: handle],
use: [Function: use],
route: [Function: route],
engine: [Function: engine],
param: [Function: param],
set: [Function: set],
path: [Function: path],
enabled: [Function: enabled],
disabled: [Function: disabled],
enable: [Function: enable],
disable: [Function: disable],
acl: [Function (anonymous)],
bind: [Function (anonymous)],
checkout: [Function (anonymous)],
connect: [Function (anonymous)],
copy: [Function (anonymous)],
delete: [Function (anonymous)],
get: [Function (anonymous)],
head: [Function (anonymous)],
link: [Function (anonymous)],
lock: [Function (anonymous)],
'm-search': [Function (anonymous)],
merge: [Function (anonymous)],
mkactivity: [Function (anonymous)],
mkcalendar: [Function (anonymous)],
mkcol: [Function (anonymous)],
move: [Function (anonymous)],
notify: [Function (anonymous)],
options: [Function (anonymous)],
patch: [Function (anonymous)],
post: [Function (anonymous)],
propfind: [Function (anonymous)],
proppatch: [Function (anonymous)],
purge: [Function (anonymous)],
put: [Function (anonymous)],
rebind: [Function (anonymous)],
report: [Function (anonymous)],
search: [Function (anonymous)],
source: [Function (anonymous)],
subscribe: [Function (anonymous)],
trace: [Function (anonymous)],
unbind: [Function (anonymous)],
unlink: [Function (anonymous)],
unlock: [Function (anonymous)],
unsubscribe: [Function (anonymous)],
all: [Function: all],
del: [Function (anonymous)],
render: [Function: render],
listen: [Function: listen]
},
request: IncomingMessage {
header: [Function: header],
get: [Function: header],
accepts: [Function (anonymous)],
acceptsEncodings: [Function (anonymous)],
acceptsEncoding: [Function (anonymous)],
acceptsCharsets: [Function (anonymous)],
acceptsCharset: [Function (anonymous)],
acceptsLanguages: [Function (anonymous)],
acceptsLanguage: [Function (anonymous)],
range: [Function: range],
param: [Function: param],
is: [Function: is],
protocol: [Getter],
secure: [Getter],
ip: [Getter],
ips: [Getter],
subdomains: [Getter],
path: [Getter],
hostname: [Getter],
host: [Getter],
fresh: [Getter],
stale: [Getter],
xhr: [Getter]
},
response: ServerResponse {
status: [Function: status],
links: [Function (anonymous)],
send: [Function: send],
json: [Function: json],
jsonp: [Function: jsonp],
sendStatus: [Function: sendStatus],
sendFile: [Function: sendFile],
sendfile: [Function (anonymous)],
download: [Function: download],
type: [Function: contentType],
contentType: [Function: contentType],
format: [Function (anonymous)],
attachment: [Function: attachment],
append: [Function: append],
header: [Function: header],
set: [Function: header],
get: [Function (anonymous)],
clearCookie: [Function: clearCookie],
cookie: [Function (anonymous)],
location: [Function: location],
redirect: [Function: redirect],
vary: [Function (anonymous)],
render: [Function: render]
},
Route: [Function: Route],
Router: [Function (anonymous)] {
param: [Function: param],
handle: [Function: handle],
process_params: [Function: process_params],
use: [Function: use],
route: [Function: route],
acl: [Function (anonymous)],
bind: [Function (anonymous)],
checkout: [Function (anonymous)],
connect: [Function (anonymous)],
copy: [Function (anonymous)],
delete: [Function (anonymous)],
get: [Function (anonymous)],
head: [Function (anonymous)],
link: [Function (anonymous)],
lock: [Function (anonymous)],
'm-search': [Function (anonymous)],
merge: [Function (anonymous)],
mkactivity: [Function (anonymous)],
mkcalendar: [Function (anonymous)],
mkcol: [Function (anonymous)],
move: [Function (anonymous)],
notify: [Function (anonymous)],
options: [Function (anonymous)],
patch: [Function (anonymous)],
post: [Function (anonymous)],
propfind: [Function (anonymous)],
proppatch: [Function (anonymous)],
purge: [Function (anonymous)],
put: [Function (anonymous)],
rebind: [Function (anonymous)],
report: [Function (anonymous)],
search: [Function (anonymous)],
source: [Function (anonymous)],
subscribe: [Function (anonymous)],
trace: [Function (anonymous)],
unbind: [Function (anonymous)],
unlink: [Function (anonymous)],
unlock: [Function (anonymous)],
unsubscribe: [Function (anonymous)],
all: [Function (anonymous)]
},
json: [Function: json],
query: [Function: query],
raw: [Function: raw],
static: [Function: serveStatic] {
mime: Mime {
types: [Object: null prototype],
extensions: [Object: null prototype],
default_type: 'application/octet-stream',
Mime: [Function: Mime],
charsets: [Object]
}
},
text: [Function: text],
urlencoded: [Function: urlencoded]
}
C'est createApplication, donc ce qui a été renvoyé est en fait la référence à createApplication();
Vous demandez peut-être comme moi, avant que je comprenne!
où sont les autres exportations que nous avons vues plus haut comme ça ! :
// express.js module
exports.static = require('serve-static');
exports.json = bodyParser.json
exports.query = require('./middleware/query');
exports.raw = bodyParser.raw
alors que se passe-t-il ici ?
Il s'agit de fonctions se comportant en JS, il se comporte comme un objet ;)
quand tu as utilisé ça :
exports = module.exports = createApplication;
exports.static = require('serve-static');
exports.json = bodyParser.json
exports.query = require('./middleware/query');
exports.raw = bodyParser.raw
exports = module.exports = createApplication;
createApplication.static = require(‘serve-static’);
__
Jetez un œil à cet extrait et testez-vous en demandant à quoi correspond express dans chaque ligne ci-dessous :
// app.js
const express = require('express')
const app = express();
app.use(express.static('public'))
fini? allons maintenant:
À la première ligne : nous avons requis le module qui a renvoyé une référence createApplication qui inclut d'autres propriétés et a stocké cette référence à la constante express ;
À la deuxième ligne : nous avons appelé cette fonction express en ajoutant () à la référence express et cette fonction (createApplication) renvoie l'objet app que nous avons stocké dans la constante app.
À la troisième ligne : nous avons utilisé la constante express qui fait référence à la fonction createApplication qui possède certaines propriétés comme la fonction statique que nous avons appelée ici.
Maintenant, j'ai fini...
![Qu'est-ce qu'une liste liée, de toute façon? [Partie 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































