终於来到第30天,今天要有始有终的把实作的编辑功能完成,一样会以NodeJS的部份为主。
在编辑的功能一样是透过两个post()
方法的中介层做请求资料的处理与回传资料,依据前端传递的资料类型使用不同的parser,这里使透过use()
方法使用Express内建的json()
方法,将请求的资料req.body
解析为JSON格式字串,并建立一个UpdateItem()
方法用以更新资料库资料。另外建立一个全域变数updateRes作为更新後回传的讯息,并以JSON格式字串回传。
var updateRes;
app.use(express.json());
app.post("/api/updateItem", (req, res, next) =>{
updateItem(req.body).then(next);
});
app.post("/api/updateItem", (req, res) =>{
res.end(JSON.stringify({data: updateRes}));
});
接着定义UpdateItem()
函式的内容,以mongoose套件建立资料库连线,使用replaceOen()
透过前端请求的ID筛选要更新的资料与给定更新的资料内容,并以exec()
执行,完成後指派讯息给全域变数updateRes
。
function updateItem(data){
return new Promise((resolve, reject) => {
mongoose.connect("mongodb://localhost:27017/todoProj")
.then(() => {
itemData.replaceOne({_id: data._id}, {
Title: data.Title,
Note: data.Note,
Date: data.Date,
Tag: data.Tag
}).exec(function(err, item){
if (err!=null) return reject(err);
updateRes = "success";
resolve();
});
}).catch(err => {
console.log(err);
reject(err);
});
});
}
30天的挑战终於完成,最能表达心情的只有一个字:累,每天8小时的工作加上晚上至少4小时起跳的学习加整理文章不可能不累,但是真的很扎实的学习了技术,每天除了看课程理解内容,有一些快速带过的内容为了要正确呈现,也参考不少资料,很感谢网路上乐於分享经验的各路强者工程师,不管遇到什麽问题或是不理解的总是能在网路上找到方向,除了获得技术之外,也更深深的感到学无止尽...已经开始考虑接着着手学习React,最後几天React的部份真的有点心虚,接下来会继续努力的,虽然短时间应该不会再进行这种高强度挑战,希望依然能维持继续学习技术的心情,或许明年会再来挑战一次,也谢谢大家30天来的阅读。
<<: Day30 - this&Object Prototypes Ch3 Objects - Review
Object的metadata让我们能快速定位Object在什麽地方、属性等等,可以理解为类似资料库...
网页施工中,请稍後再回来 虽然昨天将子母主题做汇入,本来今天预定要选定主题做汇入,但是在参考两篇文章...
Object detection - Recognize individual types of o...
题目来源 #include <stdio.h> #include <stdlib....
完食文 「 恭喜您!您的铁人系列文「舌尖上的 JS」成功完赛。铁人链成不易,坚持到最後挑战成功实在太...