根据Express documentation,app.use
和路由器都实现了路由器接口,并且都可以作为中间件。
所以基本上你可以通过
来定义路线app.use(function (req, res, next) {
next();
})
或者您也可以
var router = express.Router();
router.get('/', function (req, res, next) {
next();
})
app.use(router);
我只是想知道我是否有理由在应用程序上使用路由器?我唯一能找到的就是我需要与params
保持一致。好奇。
答案 0 :(得分:2)
使用路由可以帮助您在Express / Node中组织代码。
当我在JSON中有一个特定的帖子请求时,这就是我使用它的方式,但并非所有进入的请求都是JSON,所以我必须在这个实例中解析JSON然后回复:
单独使用应用程序:
app.use("/search", bodyParser.json());
app.post("/search", function(request, response) {
params= request.body;
getSearchResults(params.words, params.numbers, response);
});
使用具有特定路由器的应用程序:
var jsonPostRouter= express.Router();
jsonPostRouter.use(bodyParser.json())
jsonPostRouter.use( function(request, response) {
var params= request.body;
getSearchResults(params.words, params.numbers, response);
});
app.use("/search", jsonPostRouter);
然后,我可以将路由器代码放在一个单独的模块中,只需在我的主服务器代码中使用app.use("/search", jsonPostRouter);
,这有助于保持我的代码井井有条,更容易理解。