[英]How to use mongoose to update user profile info
在客戶端,用戶可以通過表單更新他們的個人資料,其中數據通過 axios 發送到 nodejs express 后端。 我想使用 mongoose 來更新用戶信息。 這是我嘗試過的:
userRouter.post('/update/:username', (req, res) => {
const update = {age: req.body.age, height: req.body.height, weight: req.body.weight, gender: req.body.gender}
const filter = {username: req.params.username}
User.findOneAndUpdate(filter, update, { new: true });
});
User
上的findOneAndUpdate
方法返回 promise 和另一種接受回調的風格。 您沒有通過任何導致此錯誤的內容。 您可以嘗試回調方法或下面編寫的一種方法。
userRouter.post('/update/:username', async (req, res) => {
const update = {age: req.body.age, height: req.body.height, weight: req.body.weight, gender: req.body.gender}
const filter = {username: req.params.username}
const updatedDocument = await User.findOneAndUpdate(filter, update, { new: true });
return res.status(200).send(updatedDocument);
});
在 REST API 規范中更新服務器上的某些資源時,必須使用PATCH
或PUT
方法進行請求。
您使用POST
方法。
在這里你可以這樣做
首先,獲取用戶名並使用過濾器屬性在數據庫中搜索。 現在獲取req.body
並應用更新的數據
app.patch('/update/:username', (req, res) => {
//You can pass req.body directly or you can separate object
const { age, height, weight, gender } = req.body;
const { username } = req.params;
const filter = { username : username }
const updatedUser = await User.findOneAndUpdate(filter, req.body, { new: true }).catch(error => {
return res.status(500).send(error);
});
return res.status(200).json({
message : "Updated user",
data: updatedUser
});
});
這對我有用,首先創建架構然后將其導入您的文件。
import RegisterSchemaModel from '../schema/RegisterSchema.js';
router.post("/api/admin/epadmin",(req, res) => {
const uData = {
"name": req.body.name,
"lname": req.body.lname,
"mobile": req.body.mobile,
"address":req.body.adddress,
"city":req.body.city,
"gender":req.body.gender
}; // Data to be Updated
const cData = { "email": req.body.email }; // Conditional Data or Unqiue Key to fetch
const updatedUser = RegisterSchemaModel.findOneAndUpdate(cData, uData,{new:true}).then((result) => {
return res.send(result)
}).catch(error => {
return res.status(500).send(error);
});
return res.status(200).json({
message : "Updated user",
data: updatedUser
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.