FullStackOpen Part3-a 演習の気づき
URLのパラメータを受け取るときはreq.params.id
findは一つを返す filterは配列を返す
filterですべてをはじいたとしてもnullではなく配列を返すので注意
req.bodyにプロパティが含まれているかどうか確認する一番簡単な方法は「!req.body.name」という感じでifに入れること
morganはHTTPリクエストのロギングツール
以下のunknownEndpointをルート一覧の後に追加しておくことで存在しないエンドポイントにアクセスしたときにエラーを出せる
const unknownEndpoint = (request, response) => {
response.status(404).send({ error: 'unknown endpoint' })
}
app.use(unknownEndpoint)
こんな感じでmorganを使ってカスタムメッセージを出せる
const morgan = require('morgan')
app.use(morgan((tokens, req, res) => {
return [
tokens.method(req, res),
tokens.url(req, res),
tokens.status(req, res),
tokens.res(req, res, 'content-length'), '-',
tokens['response-time'](req, res), 'ms',
JSON.stringify(req.body)
].join(' ')
})
)