[英]How do I properly set routes up for a Single Page App using Express.js?
[英]How do I set up routes in my node + express app to pass an authenticate method?
我正在遵循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');
事情var routes = require('./routes/index.js');
但是,在這種情況下,如何設置app.use( .. )
,使其使用authenticate()
?
謝謝
您可以在./routes/index.js
定義一個routes
模塊,如下所示:
// ./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);
您可以從文件route / 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());
這將使您的路由器可配置和可重用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.