0
私はExpressとSequelize JSで簡単なAPIを構築しています。 req.School
でレコードを更新しようとしましたが、何も起こりません。私は以下のコードを共有しました。また、私は出力のためのエラーを得た。手伝って頂けますか ? paramsは方法のでSequelize JSでモデルを更新する
コントローラJS
module.exports.params = function(req, res, next, id) {
School.find({
where: {
id: id
}
})
.then(function(school) {
if (!school) {
next(new Error("School not found by given ID"));
}else {
req.School = school;
next();
}
}, function(err) {
next(err);
});
};
module.exports.delete = function (req,res,next) {
req.School.Status = SysEnums.Deleted;
School.update(req.School,{
where:{
id:req.School.id
}
}).then(function (deleted) {
res.json(deleted);
});
};
ルートJS
var router = require("express").Router();
var controller = require("../Controllers/SchoolController");
router.param("id",controller.params);
router.route("/").get(controller.get);
router.route("/:id").get(controller.getOne).delete(controller.delete);
module.exports = router;
提出されたデータを、req.schoolの代わりに第1のパラメータとしてupdate関数で 'req.body'に使用してみませんか? – Webinion
あなたは 'req.school'にDBに保存されているデータを保存しているので、古いデータだけを提供するようです。 – Webinion
ルータJsでは、ユーザがクエリ文字列でIDを送信すると、まずparamがヒットし、paramはそのIDを持つレコードがreq.Schoolに関連付けられていることを検出します。その後、Deleteキーを押します。削除するには、削除するステータスを変更してから更新してください。しかし、動作しませんでした。 @PandhiBhaumik –