Node.js 为什么它没有显示输出?

Node.js 为什么它没有显示输出?,node.js,Node.js,在我最近浏览的文章中,我想列出我发布的事件的id。但是如果超过5个,那么我只需要最后5个我发布的id。它没有显示任何错误,但没有给出任何结果。代码有什么问题吗 server.js api.js 这是我的用户Scehma event.js findByIdAndUpdate只将id作为第一个参数,而不是对象。如果不正确地使用$push和$EATHE组合,则在分别提供$EATHE和$slice时,它们应该是最近对象的一部分,并且要推送的对象应该在$EATH数组中。应该是 User.findByIdA

在我最近浏览的文章中,我想列出我发布的事件的id。但是如果超过5个,那么我只需要最后5个我发布的id。它没有显示任何错误,但没有给出任何结果。代码有什么问题吗

server.js

api.js

这是我的用户Scehma event.js

findByIdAndUpdate只将id作为第一个参数,而不是对象。如果不正确地使用$push和$EATHE组合,则在分别提供$EATHE和$slice时,它们应该是最近对象的一部分,并且要推送的对象应该在$EATH数组中。应该是

User.findByIdAndUpdate(req.body.id, {
        $push: {
            "recent": {
                $each: [ {eventid: req.body.eventid} ],
                $slice: -5
            }
        }
    },
    { upsert :true},//etc

如果我移除切片和每个切片,会有一个输出,但是当我使用这个语法时,总是有一个输出,即{}。啊,函数也被设计为获取一个模型对象,所以我之前认为的问题在文档中没有提到,但在代码中有提到。不过,我发现了slice运算符的错误,这解释了为什么删除它会起作用。{name:MongoError,message:Can't canonicalize query:BadValue unknown top level operator:$push,$err:Can cant canonicalize query:BadValue unknown top level operator:$push,code:17287}这没有多大意义,因为$push不是查询的一部分,您确定要从req.body.id之前删除{from吗?
var User= require('../models/user');
var Event=require('../models/event');
var config=require('../../config');

var secret=config.secretKey;
module.exports=function(app,express) {
    var api = express.Router();
    // app.use()

    api.post('/signup', function (req, res) {
        var user = new User({
            name: req.body.name,
            username: req.body.username,
            password: req.body.password

        });

        user.save(function (err) {
            if (err) {
                res.send(err);
                return;
            }
            res.json({
                message: 'User created!'
            });
        });

    });
    api.get('/users', function (req, res) {
        User.find({}, function (err, users) {
            if (err) {
                res.send(err);
                return;
            }
           res.json(users);
        });
    });
    api.post('/eventfeed', function (req, res) {
        var event = new Event({
            name: req.body.name,
            location: req.body.location,
            description: req.body.description,
            price: req.body.price,
            rating: req.body.rating
        });

        event.save(function (err) {
            if (err) {
                res.send(err);
                return;
            }
            res.json({
                message: 'Event created!'
            });
        });
    });
    api.get('/event', function (req, res) {
        Event.find({}, function (err, event) {
            if (err) {
                res.send(err);
                return;
            }
            res.json(event);
        });
    });
api.post('/recentlyviewed',function(req,res){
        User.findByIdAndUpdate({_id: req.body.userid},
            { $push:{"recent": {eventid: req.body.eventid},$each:[],$slice:-5}},
            { upsert :true},
            function(err,user){
                if(err) return err;
                else
                res.json(user);
            });
    });
    return api;
}
var  UserSchema = new Schema({
    name: String,
    username: {type: String,required:true,index:{unique:true}},
    password: {type:String,required:true,select:false },
    favouriteid : [{eventid:String}],
    recent:[{eventid:String}]
User.findByIdAndUpdate(req.body.id, {
        $push: {
            "recent": {
                $each: [ {eventid: req.body.eventid} ],
                $slice: -5
            }
        }
    },
    { upsert :true},//etc