Articles of mongoose

Mongoose findByIdAndUpdate没有更新数据

似乎无法看到为什么findByIdAndUpdate没有更新数据。 我改变它findByIdAndRemove,看看我能否发现错误,但当我改变它,它确实删除,所以我不能追查到这个问题。 提前感谢您的帮助。 这是路线 router.get("/:id/edit", function(req, res){ Product.findById(req.params.id, function(err, foundProduct){ res.render("admin/edit",{product: foundProduct}); }); }); router.put("/:id",function(req, res){ Product.findByIdAndUpdate(req.params.id, req.body.product, function(err, updatedProduct){ if(err){ res.redirect("/"); }else{ res.redirect("/admin/inventory"); } }); }); 这里是button来编辑表单: <h2>This is the inventory page!</h2> <% include ../partials/header%> <a href="/admin/new">Add a new product</a> <div class = "row"> <% products.forEach(function(product){ %> <div class = "col-sm-6 col-md-4"> <div class […]

NodeJs路由不工作

我试图创build一个apiloginnodejs.but但是当我检查login路由通过Http请求者显示cannot“POST / api / authenticate” 项目结构: server.js文件: var express = require('express'); var app = express(); var port = process.env.PORT||8080; var morgan = require('morgan'); var mongoose = require('mongoose'); var bodyParser = require('body-parser'); var router = express.Router(); var appRoutes = require('./app/routes/api')(router); var path = require('path'); app.use(morgan('dev')); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); app.use(express.static(__dirname + '/public')); app.use('/app',appRoutes); mongoose.connect('mongodb://localhost:27017/tutorial', function(err){ […]

我是用async / await函数和Mongoose处理错误的好方法吗?

在我的网站上,我使用了很多asynchronousfunction来处理我网站的大部分内容,例如创build文章,pipe理员帐户,渲染视图等。 我习惯于在控制器中创build需要的asynchronous函数,然后在asynchronous执行块内部执行所有这些函数,在那里使用try {} catch(){}来捕获任何错误。 但是,我想知道是否只使用try {} catch(){}使得我错过了一些错误? 另外,我用Mongoose和Native Promises。 而且,这是做到这一点的好方法吗? 我重复这种模式,因为很多时间,所以我想知道如果我必须改变一半的asynchronousfunction。 这是一个控制器的例子: // getArticle {{{ /** * Handles the view of an article * * @param {HTTP} request * @param {HTTP} response */ getArticle: function (request, response) { /** * Get the article matching the given URL * * @async * @returns {Promise} Promise containing […]

按价格sortingMongodb数据

目标:我试图find一种方法,让用户按照最大和最小价格在一个索引页面上对租赁进行sorting。 我的问题是我能弄清楚如何使它工作的唯一方法是为低价格和高价格创build两个单独的页面。 我只想要一个主要的索引。 下面显示的pricelow页面过滤数据从低价格到高价格 app.get("/pricelow", function(req, res){ Listings.find({}).sort({price: 1}).exec(function(err, allListings){ if(err){ console.log(err); } else { res.render("pricelow",{listings:allListings}); } }) }); //下面显示的价格高的页面将数据从高价格过滤到低价格 app.get("/pricehigh", function(req, res){ Listings.find({}).sort({price: -1}).exec(function(err, allListings){ if(err){ console.log(err); } else { res.render("pricehigh",{listings:allListings}); } }) });

Mongoose连接authentication失败

有了这个帮助,我在mongo shell中创build了一个超级用户: 在mongo中创build超级用户 user: "try1" passw: "hello" 在mongo cmd中,我有3个数据库:'admin','myDatabase'和'local'。 现在我尝试使用这个授权连接到名为“myDatabase”的数据库。 mongoose.connect('mongodb://try1:hello@localhost:27017/myDatabase'); 但这是我得到的错误: 名称:'MongoError', 消息:“validation失败。”, OK:0, errmsg:'validation失败', 代码:18, codeName:'AuthenticationFailed'} mongoose断开连接 通过$ {msg}断开Mongoose

无法在Nodejs中访问db结果,它总是返回null

var robject=[]; async.waterfall([ function (callback) { for(var i in serial){ Router.find({},{r_serial_no:serial[i]},function (err,routerData) { robject = robject.concat(routerData); }); } console.log('Robject= '+robject); //THIS RETURNS NULL callback(null, robject); }, function (blogs, callback) { res.render('index', {dispatched_data:dispatched_data }); callback(null, 'Ended..' ); } ], function (err, result) { console.log(result); }); 这是我的瀑布模型,在这里我需要从schema.find方法到该方法的外部访问robject 。 但它总是返回null ..如何访问?

为什么我不能从简单的web应用程序中检索mongodb的数据?

我正在尝试将mongodb连接到我的express nodejs Web应用程序。 我对nodejs很新鲜。 我正在关注这个教程video,但是由于mongodb的连接,我无法完成它。 我有的app.js代码: var express = require('express'); var app = express(); var bodyParser = require('body-parser'); var mongoose = require('mongoose'); Genre = require('./models/genre'); let conn = mongoose.connection; conn.openUri('mongodb://localhost/bookstore'); conn.on('error', err => console.error('mongodb connection error', err)); conn.on('connected', () => console.info(`Connected to mongodb`)); conn.on('disconnected', () => console.info('Disconnected from mongodb')); app.get('/', function(req, res){ res.send('Hello World'); }); […]

Nodejs – 这个代码中的执行顺序是什么? asynchronous在内部等待循环

假设我们有一个模型“用户”,一个模型“游戏”。 一个用户可以有很多游戏,但是一个游戏只属于一个用户。 在“用户”模式中,我们有场“gamesCount” – 用户拥有的游戏总数 在“游戏”模式中,我们有与用户相关的字段userId 现在我们需要遍历所有的用户,并且对于每个用户,我们查询“游戏”集合以获得用户有多less游戏,然后将值“gamesCount”保存到用户模型。 我有2个代码片段: updateUserGamesCount: async function (req, res) { try { let users = await User.find({}); for (let user of users) { user.gamesCount= await Game.count({userId: user._id}); await user.save(); } return res.status(200).send("Success"); } catch (err) { res.status(500).send(err); } } 这第一个片段不起作用。 它只是加载一段时间,然后请求超时。 当我尝试修改gamesCount值来查看它是否已更新时,则在第一个片段运行后,值不会更新。 updateUserGamesCount: async function (req, res) { try { let […]

使用几个关键字searchmongodb

我使用节点js,mongoose,expression和mongodb。 我已经创build了一个简单的表单,在其中input您的全名,并在数据库中search并返回您的其他详细信息。 是否可以使用全名中的几个词进行search? 例如,如果用户想要search“abc xyz”,用户是否可以仅使用“abc”或“xyz” 这是我原来的路线: app.get("/",function(req,res){ var name = req.query.name; details.findOne({fullname:name},function(err,foundAsked){ if(err){console.log("ERROR!!!");} else{res.render("Details.ejs",{foundAsked:foundAsked,name:name}); } }); }); 有可能吗?如果是的话,那我该怎么实现呢?

如何处理MVC nodejs服务上的angular色(jsonwebtoken,mongoose)

我正在开发一个使用MVC模式的服务,支持NodeJS,jsonwebtoken和MongoDB(mongoose)。 在我的应用程序中,我模拟了两个主要angular色:普通用户(可以通过Facebook,亚马逊或本地注册注册),驱动程序(仅通过网站注册)。 我还要模拟用户和驱动程序之间的交易,只有用户和驱动程序明显可以通过CRUD范例进行修改。 在这里,我发布了用户和驱动程序的模型: var userSchema = mongoose.Schema({ name: String, surname: String, email: String, password: { type: String, required: true } }); var driverSchema = mongoose.Schema({ name: { type: String, required: true }, surname: { type: String, required: true }, email: { type:String, required: true, unique:true }, password: { type: String, required: true, minlength: minimum […]