jjzjj

javascript - 如何修复 Mongoose 模型的 deleteOne() 函数,当它不被 req.params.id 删除时?

首先要提到的是,我对Node.Js和MongoDB完全陌生。我正在使用Node.Js和MongoDB编写后端API,它将处理来自前端的GET、POST、DELETE请求,这些非常简单。我在使用DELETE功能时卡住了。这是我的posts.service.ts文件,其中包含此deletePost()函数,该函数将postId发送到后端app.js文件。`deletePost(postId:string){this.http.delete('http://localhost:3000/api/posts/'+postId).subscribe(()=>{console.log(postId

node.js - 通过任意排序跳过和限制 Mongoose 分页的替代方法

首先让我说一下,我读过(MongoDB-paging)使用skip和limit进行分页对性能不利,最好按dateCreated之类的东西排序并修改查询对于每一页。在我的例子中,我让用户指定参数来排序。有些可能是按字母顺序排列的。为这种类型的任意排序指定查询似乎相当困难。是否有一种性能友好的方式来进行任意排序的分页?例子mongoose.model('myModel').find({...}).sort(req.sort)...次要问题:我需要在多大程度上担心这个问题? 最佳答案 我认为你做不到。但在我看来,最好的方法是根据您的req

javascript - req.body 使用 MEAN Express 4.x 和 Node.js 未定义

我完全是个菜鸟,希望培养MEAN堆栈技能。我有一个基本的Node设置,基本的GET路由工作正常,但POST和DELETE没有将数据传递给mongo。我已经调试过req.body是未定义的,但我不知道为什么-我已经:检查我使用的是bodyParser路由在配置之后声明这是代码app.js:varexpress=require('express');varpath=require('path');varfavicon=require('serve-favicon');varlogger=require('morgan');varcookieParser=require('cookie-pa

node.js - Mongoose 通过 $set a value if NOT undefined 进行更新 (NodeJS)

检查未定义值的正确方法是什么?我想要做的是有一个PUT方法来更新那些不为空的字段。例如,如果我发送req.body.name='John'而没有发送req.body.job我希望我的请求只更改名称。部分代码:router.put('/:id',(req,res)=>{constquery={_id:req.params.id};constupdate={$set:{name:req.body.name,job:req.body.job}};User.findOneAndUpdate(query,update,(err,userUpdated)=>{if(err){console.log

javascript - 具有动态字段名称的 Mongoose Model.update

我正在尝试将字段名称作为变量传递,这是我尝试过的方法,但它不起作用:varupdate={};update[req.body.field]=req.body.value;Model.update({"email":req.user.email},{$set:{update}},function(err,success){if(err)returnhandleError(err);})req.body.field包含模型模式中定义的字段名称,req.body.value是我要更新的值 最佳答案 您不需要将update放在大括号中,因为

node.js - Req.body 在 node.js 中不可迭代

我正在构建模拟的RESTfulAPI以更好地学习。我正在使用MongoDB和node.js,为了进行测试,我使用了postman。我有一个发送更新请求的路由器router.patch。在我的数据库中,我有name(字符串)、price(数字)和imageProduct(字符串-我保存图像的路径)。我可以在postman上使用raw-format更新我的name和price对象,但我不能用form更新它-数据。据我了解,在raw-form中,我使用数组格式更新数据。有没有办法在form-data中做到这一点?使用form-data的目的,我想上传一张新图片,因为我可以更新productI

javascript - Node.js - Mongoose - 使用 req.body 中的所有值更新嵌套数组

我有一个看起来像这样的对象。{_id:'577fe7a842c9b447',name:'Jacob\'sBronzeBadges',competitors:[{_id:'577fe7a842c9bd6d',name:'Peter\'sSilverBadges',sites:[{_id:'577fe7a842c9bd6d',name:'Facebook',url:'fb.com/peter'},{_id:'577fe7a842c9bd6d'name:'Google',url:'google.com/peter'}]},{_id:'599fe7a842c9bd6d',name:'Paul\

javascript - Mongoose : insert data into an array of nested objects

我正在使用node.jsmongodb开发一个项目。我的模式有点像:varDoctor=newSchema({email:String,password:String,Dname:String,blockAppoint:[{day:String,sslot:[Number],eslot:[Number],address:String,status1:String}]});如果我将所有这些值作为用户的输入,我不知道如何插入到嵌套对象数组中。如果我的帖子api看起来像:vardoc=newDoctor({email:req.body.email,password:req.body.pass

node.js - PassportJS 重命名 "user"对象

我正在使用PassportJS实现我的登录功能有没有办法更改请求中的“用户”对象名称?默认情况下(req.user)现在是这样工作的:function(req,res,next){if(!req.user){req.flash('error','Pleasesignintoaccessthispage.');res.redirect('/login');}else{next();}}我想改用以下内容(req.candidate):function(req,res,next){if(!req.candidate){req.flash('error','Pleasesignintoacce

node.js - 使用 Express.js 的动态路由——这甚至可能吗?

每次我用新菜单项更新数据库时,我都试图让路由更新为多一条路由。这是我可悲的clown尝试:在app.js中,我检查菜单数据库和shazaam...路由是在启动时动态生成的。酷!://inapp.js//varattachDB=function(req,res,next){req.contentdb=db.content;req.menudb=db.menu;req.app=app;//thisistheexpress()appitselfreq.page=PageController;next();};db.menu.find({},function(err,menuitems){fo