【发布时间】: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