节点JS路由

时间:2017-09-19 02:31:46

标签: node.js module routing export

假设我有app.js为

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

可以通过两种不同的方式使用中间件(使用)在此文件之外创建路由:

第一种方法:

使用app.js如下:

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

在myRouter.js里面

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

第二种方法:

使用app.js如下:

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

在myRouter.js里面

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

我的问题与比较第一和第二种方法有关,哪种方法最好。 我是否正确,在第一种方法中,我们再次定义了表达式变量(因此我们将在app.js中有两个表达变量,在myRouter.js中有一个)或者当整个应用程序在nodejs中编译时,这两个表达式变量是否相同?

由于

2 个答案:

答案 0 :(得分:1)

Express是一个 unopinionated 框架,这意味着设计应用程序结构没有对错。这取决于开发人员。

当您需要在多个模块中反复使用快递时,您会获得相同 参考,因此您无需担心。在您的示例中,两者都是正确的。

答案 1 :(得分:0)

请使用此代码。

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;