Node.js 如何在没有获取的情况下获取路由的json
我有一个路由,它返回一个json和用户授权Node.js 如何在没有获取的情况下获取路由的json,node.js,express,jwt,Node.js,Express,Jwt,我有一个路由,它返回一个json和用户授权 router.get('/test', function(req, res,next ) { var token = req.cookies.auth; if (!token) return res.status(401).send({ message: ""}); jwt.verify(token, config.secret, function(err, decoded) { if (err) return
router.get('/test', function(req, res,next ) {
var token = req.cookies.auth;
if (!token) return res.status(401).send({ message: ""});
jwt.verify(token, config.secret, function(err, decoded) {
if (err) return res.status(500).send({ message: "Failed to authenticate token."});
User.findById(decoded.id,function(err,user){
if (err) return res.status(500).send({ message: "problmes found user, sorry "});
if(!user) return res.status(404).send({message: "user not found "});
res.status(200).send({message:user.role});
});
});
});
我想在另一个路由的变量中捕获json响应以授权操作
router.get('/', function(req, res, next) {
if (jsonresponse == grant ){
var allMusique;
var idMaxMusique;
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db("projet_node");
dbo.collection("musiques").find({}).toArray(function(err, result) {
if (err) throw err;
allMusique = result;
var size = allMusique.length-1;
idMaxMusique = parseInt(result[size].id)+1;
res.render('musiques', { resultat: allMusique, idMax: idMaxMusique });
});
});}
else{
res.render('unauthorized');
}
});
创建Controllers/middleware/authenticate.js文件并编写以下代码
const jwt = require('jsonwebtoken')
module.exports = (req, res, next) => {
const token = req.headers['token'] || req.body.token || req.cookies.token;
if (token) {
try {
req.decoded = jwt.verify(token, JWT_SECRET_KEY)
// JWT_SECRET_KEY -> config.secret
next()
} catch (err) {
res.status(403)
.send({ success: false, message: 'Failed to authenticate token.' })
}
}
return res.status(403).send({
success: false,
message: 'No token provided.'
})
}
创建controller/UserController.js文件
在routes/routes.js文件中
最重要的是,需要正确地使用“pathfile”,或者只需在require中反复检查文件和文件夹的路径。为什么不制作中间件,一次添加多条路由,而不请求其他路由?因为我的数据库中有很多三个crud的路由projects@AshokPatidar因为我的项目中有很多三个积垢的路线
exports.getUser = function (req, res) {
// Perform Your requirement of code
// return Something
}
exports.getUserTest = function (req, res) {
// Perform Your requirement of code
// return Something
}
const authenticate = require('./Controllers/middlewares/authenticate');
const UserController = require('./Controllers/UserController');
// Routes with authentication. User must be login for get this routes
router.get('/getUser', authenticate, UserController.getUser);
// Routes without authentication. No need to login
router.post('/getUserTest', UserController.getUserTest);