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

如何添加元素req.body?

IT培训 admin 9浏览 0评论

如何添加元素req.body?

我想使用MongoDB的集合和涉及一个集合到另一个。我有一个集名为“运动员”又一个名为“日历”,我试图增加玩家信息到日历事件,所以只有玩家登录到系统中可以看到他们的特定事件。

我可以看到我的控制台日志req.body事件的所有信息:

{ start_date: '2019-02-09 00:00',
end_date: '2019-02-09 00:05',
text: 'New event',
id: '5c5a6bc5ea427e54cd4714d6',
'!nativeeditor_status': 'updated' }

您所看到的id是事件ID。我要添加使用的护照(req.user.id)字段用户ID这样那么我就可以搜索的集合并填充登录的玩家的活动。

我的问题是如何将字段添加到req.body元素?我的日历和播放模式如下:

player.js

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const UserSchema = new Schema({
    name: {
        type: String,
        required: true
    },
    email: {
        type: String,
        required: true
    },
    password: {
        type: String,
        required: true
    },
    date: {
        type: Date,
        default: Date.now
    },
    calendar: {
        type: Schema.Types.ObjectId, ref: 'calendar'
    }
});

const User = mongoose.model('player', UserSchema);

module.exports = User;

calendar.js

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const schema = new Schema({
    text: {type: String, required: true},
    start_date: {type: Date, required: true},
    end_date:   {type: Date, required: true},
    user: {type: Schema.Types.ObjectId, ref: 'player', required: true}
});

const calendar = mongoose.model('calendar', schema);

module.exports = calendar;

下面是我如何实现我的路线index.js日历:

    //schedule
    router.get('/calendar', ensureAuthenticated, function(req, res){
        req.body.user = req.user.id;
        var db = require('mongoskin').db("mongodb://tdipietro87:[email protected]:27017,tmcluster-shard-00-01-pbtwu.mongodb:27017,tmcluster-shard-00-02-pbtwu.mongodb:27017/test?ssl=true&replicaSet=TMCluster-shard-0&authSource=admin&retryWrites=true", { w: 0});
        db.bind('calendar');

        var Calendar = require('../models/calendar');

        Calendar.find({user: req.user.id}) // query by specific user
    .then(function (data) {
        // ...


            router.use(express.static(path.join(__dirname, 'public')));
            router.use(bodyParser.json());
            router.use(bodyParser.urlencoded({ extended: true }));

            router.get('/init', function(req, res){
                db.calendar.insert({ 
                    text:"My test event A", 
                    start_date: new Date(2018,8,1),
                    end_date:   new Date(2018,8,5)
                });
                db.calendar.insert({ 
                    text:"My test event B", 
                    start_date: new Date(2018,8,19),
                    end_date:   new Date(2018,8,24)
                });
                db.calendar.insert({ 
                    text:"Morning event", 
                    start_date: new Date(2018,8,4,4,0),
                    end_date:   new Date(2018,8,4,14,0)
                });
                db.calendar.insert({ 
                    text:"One more test event", 
                    start_date: new Date(2018,8,3),
                    end_date:   new Date(2018,8,8),
                    color: "#DD8616"
                });

                res.send("Test events were added to the database")
            });


            router.get('/data', function(req, res){
                db.calendar.find().toArray(function(err, data){
                    //set id property for all records
                    console.log(err);
                    for (var i = 0; i < data.length; i++)
                        data[i].id = data[i]._id;

                    //output response
                    res.send(data);
                });
            });


            router.post('/data', function(req, res){
                console.log(req.body);
                console.log(req.user.id);
                var data = req.body;
                var mode = data["!nativeeditor_status"];
                var sid = data.id;
                var tid = sid;

                delete data.id;
                delete data.gr_id;
                delete data["!nativeeditor_status"];


                function update_response(err, result){
                    if (err)
                        mode = "error";
                    else if (mode == "inserted")
                        tid = data._id;

                    res.setHeader("Content-Type","application/json");
                    res.send({action: mode, sid: sid, tid: tid});
                }

                if (mode == "updated")
                    db.calendar.updateById( sid, data, update_response);
                else if (mode == "inserted")
                    db.calendar.insert(data, update_response);
                else if (mode == "deleted")
                    db.calendar.removeById( sid, update_response);
                else
                    res.send("Not supported operation");
            });


        res.render('calendar', {
            name: req.user.name
        })
    });
    });
回答如下:

这是非常复杂的答案,但我想给一些线索

const newEvent = new Calendar({ //Calendar is your models name
      ....fill with another required field in models
      text : req.body.text,
      user : req.user.id //look again, how you decode incoming token request and declare them
});

如何添加元素req.body?

我想使用MongoDB的集合和涉及一个集合到另一个。我有一个集名为“运动员”又一个名为“日历”,我试图增加玩家信息到日历事件,所以只有玩家登录到系统中可以看到他们的特定事件。

我可以看到我的控制台日志req.body事件的所有信息:

{ start_date: '2019-02-09 00:00',
end_date: '2019-02-09 00:05',
text: 'New event',
id: '5c5a6bc5ea427e54cd4714d6',
'!nativeeditor_status': 'updated' }

您所看到的id是事件ID。我要添加使用的护照(req.user.id)字段用户ID这样那么我就可以搜索的集合并填充登录的玩家的活动。

我的问题是如何将字段添加到req.body元素?我的日历和播放模式如下:

player.js

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const UserSchema = new Schema({
    name: {
        type: String,
        required: true
    },
    email: {
        type: String,
        required: true
    },
    password: {
        type: String,
        required: true
    },
    date: {
        type: Date,
        default: Date.now
    },
    calendar: {
        type: Schema.Types.ObjectId, ref: 'calendar'
    }
});

const User = mongoose.model('player', UserSchema);

module.exports = User;

calendar.js

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const schema = new Schema({
    text: {type: String, required: true},
    start_date: {type: Date, required: true},
    end_date:   {type: Date, required: true},
    user: {type: Schema.Types.ObjectId, ref: 'player', required: true}
});

const calendar = mongoose.model('calendar', schema);

module.exports = calendar;

下面是我如何实现我的路线index.js日历:

    //schedule
    router.get('/calendar', ensureAuthenticated, function(req, res){
        req.body.user = req.user.id;
        var db = require('mongoskin').db("mongodb://tdipietro87:[email protected]:27017,tmcluster-shard-00-01-pbtwu.mongodb:27017,tmcluster-shard-00-02-pbtwu.mongodb:27017/test?ssl=true&replicaSet=TMCluster-shard-0&authSource=admin&retryWrites=true", { w: 0});
        db.bind('calendar');

        var Calendar = require('../models/calendar');

        Calendar.find({user: req.user.id}) // query by specific user
    .then(function (data) {
        // ...


            router.use(express.static(path.join(__dirname, 'public')));
            router.use(bodyParser.json());
            router.use(bodyParser.urlencoded({ extended: true }));

            router.get('/init', function(req, res){
                db.calendar.insert({ 
                    text:"My test event A", 
                    start_date: new Date(2018,8,1),
                    end_date:   new Date(2018,8,5)
                });
                db.calendar.insert({ 
                    text:"My test event B", 
                    start_date: new Date(2018,8,19),
                    end_date:   new Date(2018,8,24)
                });
                db.calendar.insert({ 
                    text:"Morning event", 
                    start_date: new Date(2018,8,4,4,0),
                    end_date:   new Date(2018,8,4,14,0)
                });
                db.calendar.insert({ 
                    text:"One more test event", 
                    start_date: new Date(2018,8,3),
                    end_date:   new Date(2018,8,8),
                    color: "#DD8616"
                });

                res.send("Test events were added to the database")
            });


            router.get('/data', function(req, res){
                db.calendar.find().toArray(function(err, data){
                    //set id property for all records
                    console.log(err);
                    for (var i = 0; i < data.length; i++)
                        data[i].id = data[i]._id;

                    //output response
                    res.send(data);
                });
            });


            router.post('/data', function(req, res){
                console.log(req.body);
                console.log(req.user.id);
                var data = req.body;
                var mode = data["!nativeeditor_status"];
                var sid = data.id;
                var tid = sid;

                delete data.id;
                delete data.gr_id;
                delete data["!nativeeditor_status"];


                function update_response(err, result){
                    if (err)
                        mode = "error";
                    else if (mode == "inserted")
                        tid = data._id;

                    res.setHeader("Content-Type","application/json");
                    res.send({action: mode, sid: sid, tid: tid});
                }

                if (mode == "updated")
                    db.calendar.updateById( sid, data, update_response);
                else if (mode == "inserted")
                    db.calendar.insert(data, update_response);
                else if (mode == "deleted")
                    db.calendar.removeById( sid, update_response);
                else
                    res.send("Not supported operation");
            });


        res.render('calendar', {
            name: req.user.name
        })
    });
    });
回答如下:

这是非常复杂的答案,但我想给一些线索

const newEvent = new Calendar({ //Calendar is your models name
      ....fill with another required field in models
      text : req.body.text,
      user : req.user.id //look again, how you decode incoming token request and declare them
});

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论