MEANJS请求对象中的mongoose模型

我刚刚开始与meanjs 。 当我看了一下服务器端模块用户configuration文件控制器,我发现mongoose模型用户在req对象中可用。

从哪里得到req对象?

参考下面的代码,我想了解var user = req.user; ,如何在req对象中添加user

 'use strict'; /** * Module dependencies. */ var _ = require('lodash'), errorHandler = require('../errors.server.controller.js'), mongoose = require('mongoose'), passport = require('passport'), User = mongoose.model('User'); /** * Update user details */ exports.update = function(req, res) { // Init Variables var user = req.user; var message = null; // For security measurement we remove the roles from the req.body object delete req.body.roles; if (user) { // Merge existing user user = _.extend(user, req.body); user.updated = Date.now(); user.displayName = user.firstName + ' ' + user.lastName; user.save(function(err) { if (err) { return res.status(400).send({ message: errorHandler.getErrorMessage(err) }); } else { req.login(user, function(err) { if (err) { res.status(400).send(err); } else { res.json(user); } }); } }); } else { res.status(400).send({ message: 'User is not signed in' }); } }; /** * Send User */ exports.me = function(req, res) { res.json(req.user || null); }; 

Passport的身份validation中间件在成功login时设置req.user

请参阅http://passportjs.org/guide/authenticate/

在meanjs app.param([name], callback)中,每当有一个像参数articeId这样的id的路由被访问时, app.param([name], callback)中间件被触发。 在meanjs它设置req.article像这样。

  app.param('articleId', articles.articleByID); 

并在articleByID

 exports.articleByID = function(req, res, next, id) { if (!mongoose.Types.ObjectId.isValid(id)) { return res.status(400).send({ message: 'Article is invalid' }); } Article.findById(id).populate('user', 'displayName').exec(function(err, article) { if (err) return next(err); if (!article) { return res.status(404).send({ message: errorHandler.getErrorMessage(err) }); } req.article = article; next(); }); }; 

更多关于app.param请参阅http://expressjs.com/api.html#app.param