我在我的應用程式中創建了兩個模型 - 一個用于用戶(_id、電子郵件、用戶名、密碼),一個用于費用(_id、日期、詳細資訊、金額、類別)。對于用戶,我用jwt完成了認證。我希望登錄用戶能夠添加/洗掉費用,而不是向其他用戶顯示他們的費用,但我不知道如何實作。我不是要代碼——如果你能大致告訴我我需要做什么,我將不勝感激。謝謝!
//expense schema
const expenseSchema = new mongoose.Schema(
{
date: Date,
detail: String,
amount: Number,
category: String
}
)
//controller for adding expenses
const addExpenseController = (req, res) => {
const expense = new Expense({
"date": new Date(),
"amount": req.body.amount,
"detail": req.body.detail,
"category": "expense"
});
expense.save();
res.send('expense added');
};
uj5u.com熱心網友回復:
ref您應該在指向模型的費用模式中定義一個屬性User(將屬性的值更改ref為等于提供給用戶的模型名稱):
const expenseSchema = new mongoose.Schema(
{
...
user: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
}
}
)
然后,在創建時,user通過設定其 的值來指定_id。
您可以將其存盤在會話中或將其傳遞到正文中,具體取決于您的實作:
const addExpenseController = async (req, res) => {
try {
const expense = new Expense({
date: new Date(),
amount: req.body.amount,
detail: req.body.detail,
category: 'expense',
user: req.session.user_id, // or req.body.user_id
});
await expense.save();
res.send('expense added');
} catch (err) {
res.send('server error');
}
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/535536.html
上一篇:狀態渲染問題,這是正確的模式嗎?
下一篇:從SSO遠程主機驗證本地客戶端
