2017-09-19 13 views
0

Angenommen, ich habe app.js alsKnoten JS Routing

var express=require('express'); 
var app= express(); 
app.get('/',function(req,res){...}); 

Es ist möglich, eine Route außerhalb dieser Datei zu erstellen, indem Sie Middleware (Verwendung) auf zwei verschiedene Arten:

Erste Methode:

Verwendung app.js, wie folgend:

var express=require('express'); 
var app= express(); 
app.use('/',require('myRouter')) 

ins ide myRouter.js

var express=require('express'); 
var router=express.Router(); 
router.get('/',function(req,res){...}); 
module.export=router; 

Zweite Methode:

Verwendung app.js, wie folgend:

var express=require('express'); 
var app= express(); 
app.use('/',require('myRouter')(app)) 

innen myRouter.js

module.exports=function(app){ 
app.get('/',function(req,res){...}); 
} 

Meine Frage bezieht sich auf Vergleichen Sie die erste und zweite Methode und welche ist die beste. Bin ich richtig, dass wir in der ersten Methode Express-Variable wieder definieren (so haben wir zwei Express-Variable eins in app.js und eins in myRouter.js)? Oder sind diese beiden Express-Variablen identisch, wenn die gesamte Anwendung in Nodejs kompiliert wird?

Dank

Antwort

1

Express ist ein unopinionated Framework, das bedeutet, dass es kein richtig oder falsch ist App-Struktur in der Gestaltung. Es liegt am Entwickler.

Wenn Sie benötigen immer wieder innerhalb mehrerer Module auszudrücken, erhalten Sie die gleichenReferenz, also zu sorgen Sie brauchen nicht darüber. In Ihrem Beispiel sind beide korrekt.

0

Bitte verwenden Sie diesen Code.

const express = require('express'); 
 
const app = express(); 
 
const users = require('./routes/users'); 
 
app.use('/users', users); 
 

 

 
// in users 
 

 
const express = require('express'); 
 
const router = express.Router(); 
 

 
router.post('/', userController.register); 
 

 
.... 
 
module.exports = router;