昨日苦戦していた「Postmanに入力したarray(例:ユーザーのcompany, statusなど)をMongoDB Atlasに反映させる」ということですが、間違えたであろうところに戻ってもう一度コードを書き直し、ようやくエラーから開放されました!ここまでで1時間40分も費やしてしまいましたが、一つエラーが解消されて満足です。
今回はUdemyの講座のQ&Aコーナーがとても役立ちました。エラーになった時は他の人も同じところでつまづいている可能性が高いので、Q&Aコーナーがあるのは助かります。
routesでのユーザープロフィール(UserProfile)の作成とアップデート
Postmanを使ってユーザーのプロフィールの作成とアップデートができるようになりました。
目を皿にしてコードの確認をしていたので何度も目薬使用です。具体的にはこのようなコードとなりました。
// @route POST api/profile
// @desc Create or update user profile
// @access Private
router.post(
"/",
[
auth,
[
check("status", "Status is required")
.not()
.isEmpty(),
check("skills", "Skills is required")
.not()
.isEmpty()
]
],
async (req, res) => {
const errors = validationResult(req);
if (!errors.isEmpty()) {
return res.status(400).json({ errors: errors.array() });
}
const {
company,
website,
location,
bio,
status,
githubusername,
skills,
youtube,
facebook,
twitter,
instagram,
linkedin
} = req.body;
//Build Profile Object
const profileFields = {};
profileFields.user = req.user.id;
if (company) profileFields.company = company;
if (website) profileFields.website = website;
if (location) profileFields.location = location;
if (bio) profileFields.bio = bio;
if (status) profileFields.status = status;
if (githubusername) profileFields.githubusername = githubusername;
if (skills) {
profileFields.skills = skills.split(",").map(skill => skill.trim());
}
この後、SNSなどもprofileに追加できるようコードを書いたのですが、合っているかどうか確信が持てないため、次回確認予定です。
ユーザーのidを使って全てのユーザーprofileをPostmanに出力する
昨日のエラー解消してユーザーのprofileの作成とアップデートができるようになった後は、次のレクチャーに進んで「ユーザーidを使って全てのユーザーprofileをPostmanに出力する」というコードを書きました。
ここで約2時間経過。結構頑張ったのですが、MongoDB Atlasとの接続はできているものの、残念ながらPostmanで返ってくるのはserver errorとなりました。次回はまたdebugからのスタートです。
本日の感想:3歩進んで2歩戻る(back and forthで少しは進んでいるかも!?)
昨日のエラー解消できたのは嬉しかったのですが、次にもまたやってくる「壁(エラー)」。先日インスタグラムで見かけたこの言葉は本当だなと実感です。
https://www.instagram.com/p/BxcjBNcjKEO/?utm_source=ig_web_copy_link
"「引用」プログラミングのうちコーディングは半分である。その他の90%はdebuggingである。-匿名-"
「匿名」というところが何だかかっこいいですね。みんな同じなんだろうな、という気持ちで、また次回も取り組みます。
現在使用している教材と現在の状況:学習時間3.5時間
Udemy:MERN Stack Front To Back: Full Stack React, Redux & Node.js by Brad Traversy
Sec4: Profile API Routes
-Lec17 Create& Update Profile Routes
-Lec18 Get All Profiles & Profile By User ID (只今途中)
進捗状況:25%
学習時間3.5時間
~本日は休みにしている教材~
Udemy:The Complete Web Developer: Zero to Mastery by Andrei Neagoie
進捗状況: 92%