gpt4 book ai didi

javascript - 请求对象中的 MEANJS Mongoose 模型

转载 作者:行者123 更新时间:2023-11-30 12:26:13 26 4
gpt4 key购买 nike

我刚开始使用 meanjs .当我查看它的服务器端模块用户配置文件 Controller 时,我发现 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);
};

最佳答案

意思是 app.param([name], callback)每当一 strip 有像articeId这样的id的路线时,就会被使用in参数被访问,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.paramhttp://expressjs.com/api.html#app.param

关于javascript - 请求对象中的 MEANJS Mongoose 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29283392/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com