我正在使用MEAN堆疊創建一個簡單的應用程式。我的代碼作業正常,但我想從回應中洗掉一個鍵。請看我的ocde。
模型/user.js
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const userSchema = new Schema({
firstName: String,
lastName: String,
email: String,
//password: String, // <--------- commented out
userid: String,
skills: []
})
module.exports = mongoose.model('user', userSchema, 'users');
請注意,我已經注釋掉了passwordkey。但我想這還不夠。因為我仍然可以看到密碼作為回應:
郵遞員截圖
(注意:此圖中的電子郵件 ID 和加密密碼絕對是假的,因此不存在安全問題)

api.js
const User = require('../models/user');
...
router.get('/users', function (req, res) {
console.log('Get request for all users');
User.find({})
.exec(function (err, user) {
if (err) {
console.log("Error retrieving users");
} else {
res.json(user);
}
});
});
現在明天當我將使用真實的電子郵件和密碼時,雖然我會加密密碼,但我仍然不想顯示password任何密鑰。它也不應該顯示在瀏覽器的網路選項卡中。
請給我一些指示。
uj5u.com熱心網友回復:
您可以使用 mongooseselect方法來排除某些欄位。https://mongoosejs.com/docs/api.html#query_Query-select
User.find({})
.select('-password')
.exec(function (err, user) {
if (err) {
console.log("Error retrieving users");
} else {
res.json(user);
}
});
uj5u.com熱心網友回復:
你可以試試這個:
const User = require('../models/user');
...
router.get('/users', function (req, res) {
console.log('Get request for all users');
const user = User.find({} , {password:0});
return res.json({ user: user });
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/479932.html
上一篇:如何為不同的布局重用點擊監聽器
