草庐IT

nodejs-login-registration

全部标签

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

node.js - Nodejs - Mongoose 连接到定义的 MongoDB

我有一个连接到MongoDB的nodejs应用程序,这个应用程序定义了自己的模型和模式。出于某种原因,我需要创建另一个nodejs应用程序,它连接到另一个应用程序连接到的同一个MongoDB。那么,我是否必须定义相同的模型?有没有办法从Mongoose中提取模型? 最佳答案 您不能像那样从Mongoose中提取模型,但是您可以使用没有Mongoose的MongoDB连接,具体取决于您需要做什么。例如:在其他应用中执行此操作:MongoClient=require('mongodb').MongoClient;MongoClient.

json - 使用 Mongoose/NodeJS 修改具有多个键的嵌套对象而不替换现有键

架构和模型:varschema=newmongoose.Schema({timestamp_hour:Date,deviceID:Number,minutes:{'0':{temperature:Number},'1':{temperature:Number},...'59':{temperature:Number}}},{collection:'devices'});varmodel=mongoose.model('deviceData',schema);现在,在POST请求中,我从外部来源接收到一些数据,其中包含时间戳、设备ID和温度值。我的主键是timestamp_hour和de

frp客户端连接出现报错:login to server failed: dial tcp x.x.x.x:7000: i/o timeout

解决过程:如题,我在使用vps+frp实现内网穿透时客户端遇到了如上错误,在这里写一篇博客记录一下。报错截图如下:出现这个错误后我首先检查了我服务器端和客户端的配置文件,都没有发现什么问题,之后我就去网上去查,可能是我看的不够多但我确实没在网上找到一篇体现该报错解决办法的博客。最后我是在一个评论中发现了可行的解决办法,链接和截图如下:https://github.com/fatedier/frp/issues/2843刚好我的vps是在阿里云上租的,而我确实没有设置防火墙,所以当我在防火墙中添加了相应的规则后就可以成功连接了写在最后:以上只是导致这一报错的可能原因之一,不保证你设置了防火墙规则

javascript - 如何使用nodejs获取mongodb的slave状态?

我想使用nodejs获取mongodb服务器的slavestatus。这是代码。varDb=require('mongodb').Db,Server=require('mongodb').Server;vardb=newDb('admin',newServer(conf.host,conf.port));db.open(function(err,db1){varadminDb=db1.admin();adminDb.command({"status":1},function(err,result){console.log("output="+result);});});但我收到错误。e

node.js - nodejs 和 mongodb : how model a geolocation?

我正在开发一个API来存储位置,包括它们的坐标,但我不知道如何为它们建模。我应该和latitude:{type:Float},longitude:{type:Float},或者有没有办法将它们建模为数组,例如[43.95,-26.75]?我想稍后过滤它们的距离。 最佳答案 最近我在做地理定位方面的工作,我想我可以回答你的问题,为时已晚,但这可能对正在寻找解决方案的其他人有所帮助。location:{type:{type:String,default:'Point',},coordinates:[Number],//[22.2475,

node.js - 使用 mongoose mongodb nodejs 通过索引变量增加数组中的值

我有一个数字数组:readersNum:{type:[Number],default:[]},我想将indexVariable中的值增加1。这行得通:Posts.update({"readerID":readerID},{$inc:{"readersNum.0":1}},{upsert:true,safe:true},function(err){console.log(err);});但问题是我的值不在特定(常量)索引中,它是一个变量。假设索引变量是indexVariable而不是0,我应该如何增加它?我也试过这个:Posts.findOne({"readerID":readerID}

javascript - 在回调中向nodejs express中的 session 添加数据

在下面的代码中,我试图从数据库中获取用户详细信息并将其保存到session中。但不幸的是它没有像我预期的那样工作,数据没有写入session变量。我想这是因为按值(value)传递?任何解决方法exports.check=function(req,res,next){....getUserFromDB(req);}functiongetUserFromDB(req){..db.findOne(query,function(doc){req.session.user=doc;})} 最佳答案 我认为您错过了回调电话。你在使用expre

javascript - nodejs mongoose 在保存条目后不返回控制台

我使用来自控制台的一小段代码来测试在MongoDB数据库中保存/检索条目。它看起来像这样:varmongoose=require('mongoose');varmodels=require('../models');mongoose.connect('localhost','users');varjohn=newmodels.User({name:'John'});john.save(function(err,john){if(err){console.log(err)}else{console.log(john.name);}});在我运行它之后,它会在保存条目时显示名称,然后不会将

node.js - 预填充数据库 - nodejs + mongodb

我正在使用nodejs和mongodb创建一个webapp。因为我目前在本地工作,所以我想使用一个已经包含一些元素的本地数据库,这样每次运行我的程序时我的数据库都不会为空。最好的方法是什么?谢谢 最佳答案 1)在本地安装mongodbhttp://www.mongodb.org/2)编写一个nodejs脚本来删除集合(如果存在),然后将新数据插入到这些集合中3)每当您想重置测试集时,从命令提示符运行该脚本。我建议使用异步来连续插入。https://github.com/caolan/async掉落:varcollections=['