【问题标题】:mongodb not saving entry from node.jsmongodb 不保存来自 node.js 的条目
【发布时间】:2015-10-07 23:55:38
【问题描述】:

只是想学习 node/mongo/express,所以我很新。我正在看一本书,只是想了解一些基础知识。

我在 user.js 中有以下代码..

var mongoose = require('mongoose')
mongoose.connect('mongodb://localhost/auth_demo');

var user = mongoose.Schema({
  username: String,
  password: String
})

module.exports = mongoose.model('User', user );

然后是 server-auth.js


var User = require('./user')
var express = require('express')
var bcryptjs = require('bcryptjs')

var app = express();
app.use(require('body-parser').json());

app.post('/user', function( req, res, next ) {
  var user = new User({ username: req.body.username });
  bcryptjs.hash(req.body.password, 10, function( err, hash ) {
    user.password = hash
    console.log( err, hash, user )

    user.save( function( err, user ) {
      if( err ) { throw next( err ) }
      res.send( 201 )
    })
  })
})

当我运行 node server-auth.js 并输入以下命令时..

curl -X POST -d '{"username": "somename", "password" : "pass"}' -H 'Content-Type: application/json' localhost:3000/user

我可以在节点的控制台日志中看到,它显示对象很好..它还显示“已创建”以响应命令


null
$2a$10$NjymL8LT40ze6DauEDlX.OLzZMHB09uohbWuhiA0JNVLX8oTiGS1q
{ password: '$2a$10$NjymL8LT40ze6DauEDlX.OLzZMHB09uohbWuhiA0JNVLX8oTiGS1q',
  username: 'somename',
  _id: 561537693097776367ef4d87 }

所以这一切“看起来”都不错。

但是,如果我随后连接到 mongo,“show dbs”会显示 auth_demo 集合,如果我执行 db.auth_demo.find(),它不会显示任何内容(我尝试在 mongo 中本地保存并且没关系)?

【问题讨论】:

  • 您是否更改了数据库? use auth_demo;。然后拨打:show collections;
  • 谢谢,是的,为什么要保存到“用户”中,那是在哪里设置的?
  • np,已经在下面的评论中找到了,感谢您的帮助。

标签: javascript node.js mongodb express


【解决方案1】:

进入 mongo 客户端后试试这个:

use auth_demo;
db.users.find();

【讨论】:

  • 谢谢,这可行,我想我正在混合收藏/数据库之类的?为什么是“用户”,这个集合在哪里?
  • 好的,我想我可以从stackoverflow.com/questions/7230953/… 看到它有多奇怪,谢谢你的帮助
猜你喜欢
  • 2014-12-02
  • 2013-05-14
  • 1970-01-01
  • 2012-12-31
  • 2013-04-30
  • 2014-01-22
  • 2022-10-23
  • 1970-01-01
  • 2014-11-26
相关资源
最近更新 更多