最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

与猫鼬的NodeJS

IT培训 admin 7浏览 0评论

与猫鼬的NodeJS

我有以下的猫鼬的模式:

var userSchema = new Schema({
    username: {
        type: String,
    },
    password: {
        type: String,
    },
    email: {
        type: String,
    },
    _imageId: [{
        type: mongoose.Schema.Types.ObjectId,
        ref: 'files'
    }]
});

当我以这种方式使用的功能findOne()从数据库中检索数据

getById: function (req, res) {
    User.findOne({ _id: req.params.id }, function (err, user) {
        getProfileImage(req, user, function(user) {
            return res.status(200).send({
                msg: 'User retrieved successfully',
                data: user
            });
        });
    });
}

我得到的图像阵列,但只是与自己的ID,所以我有使用功能getProfileImage手动添加URL。

有没有用猫鼬务实地添加URL的方式?

编辑:

我想补充getProfileImage实施

var getProfileImage = function(req, user, callback) {
    if(user && user._imageId.length > 0) {
        user.set('profileImage', req.protocol + '://' + req.get('host') + '/image/get/' + user._imageId[user._imageId.length - 1], { strict: false });
    }

    callback(user);
};
回答如下:

是的,有一种方法,它不涉及在_imageId存储userSchema。这是周围的其他方法。你需要创建一个存储imageSchema一个_userId,并从那里获取的所有图像。

Schemas

var userSchema = new Schema({
    username: {
        type: String,
    },
    password: {
        type: String,
    },
    email: {
        type: String,
    }
});

var imageSchema = new Schema({
    url: {
        type: String,
    },
    userId: {
        type: mongoose.Schema.Types.ObjectId,
    }
});

Controller

getById: function (req, res) {
    User.findOne({ _id: req.params.id }, function (err, user) {

        // Get images related to the user
        Image.find({userId: req.params.id}, function(err, images) {
            user.images = images;

            return res.status(200).send({
                msg: 'User retrieved successfully',
                data: user
            });
        });
    });
}

与猫鼬的NodeJS

我有以下的猫鼬的模式:

var userSchema = new Schema({
    username: {
        type: String,
    },
    password: {
        type: String,
    },
    email: {
        type: String,
    },
    _imageId: [{
        type: mongoose.Schema.Types.ObjectId,
        ref: 'files'
    }]
});

当我以这种方式使用的功能findOne()从数据库中检索数据

getById: function (req, res) {
    User.findOne({ _id: req.params.id }, function (err, user) {
        getProfileImage(req, user, function(user) {
            return res.status(200).send({
                msg: 'User retrieved successfully',
                data: user
            });
        });
    });
}

我得到的图像阵列,但只是与自己的ID,所以我有使用功能getProfileImage手动添加URL。

有没有用猫鼬务实地添加URL的方式?

编辑:

我想补充getProfileImage实施

var getProfileImage = function(req, user, callback) {
    if(user && user._imageId.length > 0) {
        user.set('profileImage', req.protocol + '://' + req.get('host') + '/image/get/' + user._imageId[user._imageId.length - 1], { strict: false });
    }

    callback(user);
};
回答如下:

是的,有一种方法,它不涉及在_imageId存储userSchema。这是周围的其他方法。你需要创建一个存储imageSchema一个_userId,并从那里获取的所有图像。

Schemas

var userSchema = new Schema({
    username: {
        type: String,
    },
    password: {
        type: String,
    },
    email: {
        type: String,
    }
});

var imageSchema = new Schema({
    url: {
        type: String,
    },
    userId: {
        type: mongoose.Schema.Types.ObjectId,
    }
});

Controller

getById: function (req, res) {
    User.findOne({ _id: req.params.id }, function (err, user) {

        // Get images related to the user
        Image.find({userId: req.params.id}, function(err, images) {
            user.images = images;

            return res.status(200).send({
                msg: 'User retrieved successfully',
                data: user
            });
        });
    });
}

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论