我正在研究NodeJS项目,并使用Express作为我的路由框架。
我的网站上有一个注册表单和一个登录表单,两者都分别向/users
(/register
和/login
发送请求。但是,我希望能够将/users/:userID
作为路由来查看不同用户的配置文件,但当然,此路由意味着我为每个登录用户都有一个session_id。
我的问题是,我如何使用app.use('/users', checkForSessionId)
,而无需将其用于注册和登录?
答案 0 :(得分:1)
这是您需要使用中间件的地方
app.js
var users = require('./routes/user');
app.use('/users', users);
./路由/ user.js的
var express = require('express');
var router = express.Router();
function checkForSessionId(req, res, next){
//if no valid session
// return res.status(401).json("not authorised");
//else
next();
}
router.get('/:userId', checkForSessionId, function(req, res){
//this is a route which requires authentication
})
router.post('/register', function(req, res){
//authentication is not necessary
})
module.exports = router;