如何解决排序更新信息
我已经为这一问题苦苦挣扎了一天,似乎还没有找到解决它的方法。这是我正在运行的代码
客户端:
const nameInput = document.querySelector("#nameInput");
const urlInput = document.querySelector("#urlInput");
const rowAlert = document.querySelector(".alertAppend");
const divAlert = document.createElement("div");
const nameUpdate = async (e) => {
e.preventDefault();
fetch("/auth/updateName",{
method: 'POST',headers: {
'Content-Type' : 'application/json'
},body: JSON.stringify({
name: nameInput,url: urlInput,})
})
.then(function (data) {
console.log('Request success: ',data);
})
.catch(function (error) {
console.log('Request failure: ',error);
});
};
submitName.addEventListener("click",nameUpdate);
API:
router.get("/updateName",auth,async (req,res) =>{
try {
const { name,url } = req.body;
const ime = name;
const uid = req.session.passport.user;
db.User.find({ where: { id: uid } })
.on('success',function (user) {
if (user) {
user.update({
name: ime,webhook: url
})
.success(function () {})
}
})
res.json({ message: url});
} catch (err) {
if (err) res.status(500).json({ message: "Internal Error"})
}
});
由于某种原因,它只运行选择查询,而从不继续更新用户。
在有帮助的情况下对模型进行排序:
module.exports = function (sequelize,DataTypes) {
var User = sequelize.define("User",{
email: {
type: DataTypes.STRING,allowNull: false,unique: true,validate: {
isEmail: true
}
},password: {
type: DataTypes.STRING,allowNull: false
},name: {
type: DataTypes.STRING
}
})
return User;
}
解决方法
您可以尝试以下代码
await db.User.update({
name: ime,webhook: url
},{ where: { id: uid } });
定义模型时,我没有看到webhook
字段
问题出在API中,应该是router.post
router.post("/updateName",auth,async (req,res) =>{
const { ime,url } = req.body;
const uid = req.session.passport.user;
console.log(ime);
db.User.findOne({where: {id: uid}})
.then(record => {
let values = {
name: ime,webhook: url
}
record.update(values).then( updatedRecord => {
console.log(`updated record ${JSON.stringify(updatedRecord,null,2)}`)
res.status(200).json({ message: "success"});
})
}
})
.catch((error) => {
// do seomthing with the error
throw new Error(error)
})
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。