2016-10-05 69 views
0

所以我想隱藏密碼對象顯示。這是我的代碼,我正在使用bcrypt來密碼。我隱藏了返回對象,但我沒有得到我的預期結果。我做錯了什麼,請幫忙。非常感謝。 謝謝。對象不斷顯示密碼我試圖隱藏它

var express = require('express') 
var router = express.Router() 
var User = require('../Models/User.js') 
var bcrypt = require('bcrypt') 


router.get('/:resource', function(req, res, next){ 
    var resource = req.params.resource 

    if (resource == 'user'){ 
    User.find(null, function(err, users){ 
     if(err) { 
     res.json({ 
      confimration: 'error', 
      message: err 
     }) 
     return 
     } 

     res.json({ 
      confimration: 'success', 
      message: users 
     }) 
     return 
    }) 
    } 
}) 

router.post('/:resource', function(req, res, next){ 
    var resource = req.params.resource 
    var data = req.body 
    var password = data.password 
    var hashed = bcrypt.hashSync(password, 10) 
    data['password'] = hashed 

    if(resource == "user") { 
    User.create(data, function(err, user){ 
     if(err){ 
     res.json({ 
      confirmation: 'fail', 
      message: err 
     }) 
     return 
     } 
     res.json({ 
     confirmation: 'success', 
     result: user 
     }) 
     return 
    }) 
    } 
}) 

    module.exports = router 



    var mongoose = require('mongoose') 

    var UserSchema = new mongoose.Schema({ 
     firstName: {type: String, lowercase: true, trim: true, default: ''}, 
     lastName: {type: String, lowercase: true, trim: true, default: ''}, 
     email: {type: String, lowercase: true, trim: true, default: ''}, 
     city: {type: String, default: ''}, 
     password: {type: String, default: ''}, 
     timestamp: {type:Date, default: Date.now} 
    }) 

    UserSchema.methods.summary = function() { 
     var summary = { 
     firstName: this.firstName, 
     lastName: this.lastName, 
     email: this.email, 
     timestamp: this.timestamp, 
     id: this._id, 
     city: this.city 
     } 
     return summary 
    } 

    module.exports = mongoose.model('UserSchema', UserSchema) 

{ 
_id: "57f460235805b52762605df2", 
__v: 0, 
timestamp: "2016-10-05T02:06:27.829Z", 
password: "$2a$10$DIHrMO8WcRmOkIVj93SSQ.LFe5vPYH6R3xrfsSuql.v2jfU2mcO.C", 
city: "new york", 
email: "4", 
lastName: "4", 
firstName: "4" 
} 
+0

你在哪裏試圖隱藏你的密碼? – MrPiao

+0

我想返回除密碼以外的所有內容。 { _id: 「57f460235805b52762605df2」, __v:0, 時間戳: 「2016-10-05T02:06:27.829Z」, 城市: 「紐約」, 電子郵件: 「4」, 名字:「4 「, 姓氏:」4「 } – spaceDog

+0

何處使用您的彙總方法?我甚至不認爲這很重要。因爲如果您在回覆郵寄請求時正在討論隱藏密碼,請發送剛剛保存的整個文檔。你沒有過濾任何東西。 –

回答

0

router.get您可以使用投影字段。我不知道你爲什麼有空。但這find搜索用戶集合中的所有文檔,並排除返回的每個文檔的密碼字段。這對router.get有幫助嗎?

if (resource == 'user'){ 
    User.find({},{password: 0}, function(err, users){ 
     if(err) { 
     res.json({ 
      confimration: 'error', 
      message: err 
     }) 
     return 
     } 

     res.json({ 
      confimration: 'success', 
      message: users 
     }) 
     return 
    }) 
    }