我正在关注auth0后端设置教程,我想知道如何在单独的文件中而不是app.js
中设置路由。
在教程中,他们创建了
var authenticate = jwt({
secret: new Buffer(process.env.AUTH0_CLIENT_SECRET, 'base64'),
audience: process.env.AUTH0_CLIENT_ID
});
然后app.use('/secured', authenticate);
如果我想在某些路径文件夹routes/index.js
中设置我的路线,并且我想使用此authenticate()
,我该如何在app.js
中设置?
我知道我必须做var routes = require('./routes/index.js');
之类的事情,但在这种情况下如何设置app.use( .. )
以便它使用authenticate()
?
由于
答案 0 :(得分:3)
您可以在routes
中定义./routes/index.js
模块,如下所示:
// ./routes/index.js
module.exports = function (app) {
app.get('/secured', getSecuredController);
};
function getSecuredController (req, res) {
res.send('/secured OK');
}
在您的主app.js
文件中:
// ./app.js
var initializeRoutes = require('./routes');
var authenticate = jwt({..});
app.use('/secured', authenticate);
initializeRoutes(app);
答案 1 :(得分:1)
您可以从文件routes / index.js返回路由器:
// routes/index.js
const express = require('express');
module.exports = function(options) {
const router = express.Router();
router.get('/', (req, res, next) => {
// process route...
});
// define other routes...
return router;
};
并在服务器中使用它:
// server.js
const express = require('express');
const router = require('./routes/index.js');
const authenticate = jwt({
secret: new Buffer(process.env.AUTH0_CLIENT_SECRET, 'base64'),
audience: process.env.AUTH0_CLIENT_ID
});
var app = express()
app.use('/secured', authenticate, router());
这将使您的路由器可配置并可重复使用。