Tag: mongodb

mongoose批量更新/保存

我读了Model.collection.insert比Model.create快。 我在User.collection中有1kk用户,我想每1分钟更新一次:这是我的代码: const mongoose = require('mongoose'); const User = require('./models/user'); const async = require('async'); function getRandomArbitrary(min, max) { return Math.round(Math.random() * (max – min) + min); } User.find({}, (err, docs) => { async.mapSeries(docs, (doc, callback) => { doc.value = getRandomArbitrary(0,100); doc.save((err) => { callback(err, doc); }); }, (err, result) => { if (err) return err; […]

脸书authentication与护照。 无法读取未定义错误的属性“0”

我正在学习使用Facebook将社交authentication添加到应用程序中。 一切工作正常,直到我真的尝试login到我的testing应用程序与Facebook。 而不是路由到configuration文件页面,我得到这个错误: Cannot read property '0' of undefined TypeError: Cannot read property '0' of undefined at Strategy.generateOrFindUser [as _verify] (C:\projects\Side Projects\passyapp\app.js:16:19) at C:\projects\Side Projects\passyapp\node_modules\passport- oauth2\lib\strategy.js:193:24 at C:\projects\Side Projects\passyapp\node_modules\passport- github\lib\strategy.js:174:7 at passBackControl (C:\projects\Side Projects\passyapp\node_modules\oauth\lib\oauth2.js:134:9) at IncomingMessage.<anonymous> (C:\projects\Side Projects\passyapp\node_modules\oauth\lib\oauth2.js:157:7) at emitNone (events.js:91:20) at IncomingMessage.emit (events.js:185:7) at endReadableNT (_stream_readable.js:974:12) at _combinedTickCallback (internal/process/next_tick.js:74:11) at process._tickCallback (internal/process/next_tick.js:98:9) 下面是从我的APP.JS文件中的一个SNIPPET: function […]

hasOwnProperty不能在Mongoose中预先validation

我有一个架构 – var PostSchema = new mongoose.Schema({ title: String, link: String, author: {type:String,required:true}, upvotes: {type: Number, default: 0}, comments: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Comment' }] }); PostSchema.pre('validate',function(next){ console.log("Pre validate document printing – "); console.log(this); console.log("Pre validate called. Title : ",this._id); console.log("Author is : ",this.author); console.log("hasOwnProperty : ",this.hasOwnProperty("author")); console.log("this.author==\'\' : ",this.author==''); if(!(this.hasOwnProperty("author"))||this.author==''){ console.log("Here"); this.author="Hacked"; } next(); […]

$ https删除不能在nodejs和mongodb中工作,无法删除

身份证即时进入控制器,但nt进入服务器,当我点击删除我在控制台中得到的ID。 它显示错误“可能未处理的拒绝”和错误404 这是我的服务器: var express=require('express'); var mongojs=require('mongojs'); var bodyParser=require('body-parser'); var app=express(); var db=mongojs('contactlist',['contactlist']); app.use(express.static(__dirname + "/public")); app.use(bodyParser.json()); app.get('/Contactlist',function (req,res) { console.log("ireceived a get request") db.contactlist.find(function (err,docs) { console.log(docs); res.json(docs); }) }) app.post('/Contactlist',function (req,res) { db.contactlist.insert(req.body,function (err,doc) { res.json(doc); console.log(doc); }) }) app.delete('/contactlist/:id',function (req,res) { var id= req.params.id; console.log(id); }) app.listen(3000); console.log('Server running on port 3000'); […]

如何获取对象ID以及如何更新

我正在尝试获取任何已经在分贝中的文章的对象ID,以便我可以在进行评论之前validation文章是否存在。 问题出在路由器上(/ blog / article / comment)。 我无法从/ blog / article /:postid获取文章对象ID。 我想通过这个ID到articleId像这样: articleId: req.params.postid 我也试过了: articleId: req.article._id 模型结构:comment.js var mongoose = require('mongoose'); var CommentSchema = new mongoose.Schema({ content: { type: String }, user: { type: mongoose.Schema.Types.ObjectId, ref: 'User' }, articleId: { type: mongoose.Schema.Types.ObjectId, ref:'Article' }, dateCommented: { type: Date, default : Date.now } }); […]

Nodejs:在创buildhttp服务器之前等待mongodb连接

在我的app.js ,当应用程序启动时,我创build了一个mongodb连接。 mongoose.connect(config.db, {}); var db = mongoose.connection; db.on('error', function () { log.error("Failed to connect to database"); process.exit(1); }); db.once('open', function () { log.info("Connected to database"); }); app.js从bin/www.js (使用require('./../app') )来使用,其中创build了http服务器。 目前,如果数据库连接不成功,应用程序终止,但在终止之前创buildHTTP服务器,因为数据库创build失败是asynchronous报告。 我需要阻止http服务器创build,直到数据库连接成功,但我需要保持在bin/www.js本身的服务器创build代码,而不bin/www.js其移动到数据库连接成功callback在app.js 有什么办法可以做到这一点?

如何使用Node.js服务器将我的图像数据从前端保存到Mongoose数据库

我有一个后端使用node.js和一个前端使用jQuery,JavaScript,AJAX和引导。 我想从前端上传一张图片并保存到mongoose数据库中。 这里文件加载成功,图像将位于/ public / img位置。 但是,如何使用API​​调用将这些图像信息保存到数据库中。 以下是我的代码: 后端代码Node.js,Mongoose /server.js var express = require("express"); var multer = require('multer'); var path = require('path'); var mongoose = require('mongoose'); var bodyParser = require('body-parser'); var app = express(); app.appname="photogallery"; //config mongoose app.db = mongoose.createConnection('localhost/'+app.appname); app.db.on('error', console.error.bind(console, 'mongoose connection error: ')); app.db.once('open', function () { //Storage is all good }); […]

NodeJS在使用web套接字时存储数据的可能性最好

我正在用NodeJS和Socket.io开发一个基于回合的游戏,在这个游戏之间存储了大量的信息。 我想知道什么是最好的方法来处理可以说,成千上万的用户。 目前我使用全局variables来存储与“决斗”全局variables中的匹配相关的所有内容,其中关键是dynamic创build的空间: duels[room].character_1 = character_1; duels[room].character_opponent_1 = character_opponent_1; duels[room].player_1_moves = {//really big object}; duels[room].player_2_moves = {//really big object}; 我不确定这是否是处理数千用户的最佳方式。 至less记忆明智。 我见过2个其他选项: 第一:使用会话variables来存储数据,但是这在我看来会占用大量的服务器内存(RAM),最好的全局variables或会话? 或者他们都很糟糕? 第二:我正在使用MongoDB,是否可以select在我的数据库中不断插入和检索信息并将其存储在那里? 我有一个感觉,如果我发送太多的查询到我的数据库将崩溃。 基本上,在这一点上我不知道在哪里存储所有这些信息,而不冒我的服务器性能的风险。 我接受任何方法。

不能在Nodejs中使用Mongodb

当我尝试从集合中的字段(“acc”)获取所有不同的值时,我遇到了一个问题 var mongojs = require('mongojs'); var mongodb = mongojs('mongodb://localhost:27017/na'); var mongodb_data = mongodb.collection('data'); mongodb_data.distinct( "acc", (function(err, docs){ if(err){ return console.log(err); } if(docs){ console.log(docs); } }) ); 当我运行代码时,它给出了下面的错误跟踪 (node:45480) DeprecationWarning: sys is deprecated. Use util instead. /…/node_modules/mongodb/lib/utils.js:98 process.nextTick(function() { throw err; }); ^ TypeError: cb is not a function at /U…/node_modules/mongojs/lib/collection.js:69:5 at handleCallback (/…/node_modules/mongodb/lib/utils.js:95:56) at /…/node_modules/mongodb/lib/db.js:313:5 […]

如何使用节点编译器,得到“错误:尝试使用package.jsonvariables,但没有安装”

我正在努力创build我的nodejs项目的可执行分发。 我想发送一个可执行文件,就像我们用Tomcat包含的可执行文件jar一样。 我读 Node Compiler is a command-line utility that compiles your Node.js application into a single executable file. 在https://www.npmjs.com/package/node-compile 安装后把它扔npm,我试过了: nodejs my-project-nodejs # node-compiler server.js ….> ERROR: trying to use package.json variables, but not setup to do so! 所以,我直接的问题是:我在package.json中缺less什么? 另外,我正在使用MongoDb。 我相信我不会面对问题,如果我的消费者下载和isntall MongoDb开始执行可执行的nodejs项目。 我正在考虑它,因为我读了相同的url: but by using default nexe, we could not easily produce a […]