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