Day30 NodeJS实作 IV & 铁人赛最终章

终於来到第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天来的阅读。/images/emoticon/emoticon41.gif


<<:  Day30 - this&Object Prototypes Ch3 Objects - Review

>>:  JS 30 - 将 JSON 资料应用到统计学!

Day18 Lab 2 - Object storage metadata

Object的metadata让我们能快速定位Object在什麽地方、属性等等,可以理解为类似资料库...

【领域展开 11 式】网站制作中,请 Google 不要搜寻到我 > <

网页施工中,请稍後再回来 虽然昨天将子母主题做汇入,本来今天预定要选定主题做汇入,但是在参考两篇文章...

Day 14 Detect objects in images with the Custom Vision service

Object detection - Recognize individual types of o...

[C 语言笔记--Day18] 用 linked list 实作 merge sort

题目来源 #include <stdio.h> #include <stdlib....

D30 - 舌尖上的 JS 完食!

完食文 「 恭喜您!您的铁人系列文「舌尖上的 JS」成功完赛。铁人链成不易,坚持到最後挑战成功实在太...