Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ app.get("/messages", (request, response) => {
response.json(messages);
});

app.post("/send", (request, response) => {
app.post("/messages", (request, response) => {
messages.push(request.body.message);
response.send();
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ setInterval(async () => {
document.getElementById("send-button").onclick = async () => {
const messageInput = document.getElementById("message-input");
const message = messageInput.value;
await fetch("/send", {
await fetch("/messages", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ message: message }),
Expand Down
10 changes: 5 additions & 5 deletions docs/3-web-servers/07-fetch-api-post/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -283,7 +283,7 @@ document.getElementById("search-button").onclick = async () => {

<video src={chatAppVideo} controls muted />

サーバー側では、これまでのメッセージを保存する配列`messages`を用意しましょう。`/messages`に対するGETリクエストを受けたとき、配列`messages`をJSON形式で返すようにしてください。また、`/send`に対するPOSTリクエストを受けたとき、`Array#push`メソッドで受け取ったメッセージを配列`messages`に追加するようにしてください。
サーバー側では、これまでのメッセージを保存する配列`messages`を用意しましょう。`/messages`に対するGETリクエストを受けたとき、配列`messages`をJSON形式で返すようにしてください。また、`/messages`に対するPOSTリクエストを受けたとき、`Array#push`メソッドで受け取ったメッセージを配列`messages`に追加するようにしてください。

```javascript title="main.mjsの抜粋 (サーバーとして動作するJavaScript)"
const messages = [];
Expand All @@ -292,13 +292,13 @@ app.get("/messages", (request, response) => {
// messagesをJSON形式で返す
});

app.post("/send", (request, response) => {
app.post("/messages", (request, response) => {
// 受け取ったメッセージをmessagesに追加
response.send();
});
```

ブラウザ側では、新着メッセージを確認するために、定期的に`/messages`にGETリクエストを発行し、受け取ったレスポンスに基づいてメッセージの一覧を表示するようにしてください。また、メッセージを入力し、送信ボタンを押すと、`/send`に対してPOSTリクエストでメッセージの内容を送信するようにしてください。
ブラウザ側では、新着メッセージを確認するために、定期的に`/messages`にGETリクエストを発行し、受け取ったレスポンスに基づいてメッセージの一覧を表示するようにしてください。また、メッセージを入力し、送信ボタンを押すと、`/messages`に対してPOSTリクエストでメッセージの内容を送信するようにしてください。

```javascript title="public/script.jsの抜粋 (ブラウザ上で動作するJavaScript)"
setInterval(async () => {
Expand All @@ -325,7 +325,7 @@ app.get("/messages", (request, response) => {
response.json(messages);
});

app.post("/send", (request, response) => {
app.post("/messages", (request, response) => {
messages.push(request.body.message);
response.send();
});
Expand Down Expand Up @@ -358,7 +358,7 @@ setInterval(async () => {
document.getElementById("send-button").onclick = async () => {
const messageInput = document.getElementById("message-input");
const message = messageInput.value;
await fetch("/send", {
await fetch("/messages", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ message: message }),
Expand Down
2 changes: 1 addition & 1 deletion docs/3-web-servers/08-database/_samples/forum/main.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ app.get("/posts", async (request, response) => {
response.json(posts);
});

app.post("/send", async (request, response) => {
app.post("/posts", async (request, response) => {
await client.post.create({ data: { message: request.body.message } });
response.send();
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ setInterval(async () => {
document.getElementById("send-button").onclick = async () => {
const messageInput = document.getElementById("message-input");
const message = messageInput.value;
await fetch("/send", {
await fetch("/posts", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ message: message }),
Expand Down
10 changes: 5 additions & 5 deletions docs/3-web-servers/08-database/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -291,7 +291,7 @@ app.get("/posts", async (request, response) => {

### 手順7

前頁での演習問題2と同様にして、ブラウザ側で、定期的に`/posts`にGETリクエストを発行し、受け取ったレスポンスに基づいてメッセージの一覧を表示するようにしてください。また、メッセージを入力し、送信ボタンを押すと、`/send`に対してPOSTリクエストでメッセージの内容を送信するようにしてください。
前頁での演習問題2と同様にして、ブラウザ側で、定期的に`/posts`にGETリクエストを発行し、受け取ったレスポンスに基づいてメッセージの一覧を表示するようにしてください。また、メッセージを入力し、送信ボタンを押すと、`/posts`に対してPOSTリクエストでメッセージの内容を送信するようにしてください。

<Answer title="手順7まで">

Expand Down Expand Up @@ -337,7 +337,7 @@ setInterval(async () => {
document.getElementById("send-button").onclick = async () => {
const messageInput = document.getElementById("message-input");
const message = messageInput.value;
await fetch("/send", {
await fetch("/posts", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ message: message }),
Expand All @@ -349,13 +349,13 @@ document.getElementById("send-button").onclick = async () => {

### 手順8

メッセージの送信先 (`/send`へのPOSTリクエスト) を作成しましょう。送られてきたデータが正しいか、Node.jsのデバッガを用いて確認してみましょう。
メッセージの送信先 (`/posts`へのPOSTリクエスト) を作成しましょう。送られてきたデータが正しいか、Node.jsのデバッガを用いて確認してみましょう。

<Answer title="手順8まで">

```javascript title="main.mjsの抜粋 (サーバーとして動作するJavaScript)"
app.use(express.urlencoded({ extended: true }));
app.post("/send", async (request, response) => {
app.post("/posts", async (request, response) => {
debugger; // ここでrequestオブジェクトの中身を確認
});
```
Expand All @@ -369,7 +369,7 @@ app.post("/send", async (request, response) => {
<Answer title="手順9まで">

```javascript title="main.mjsの抜粋 (サーバーとして動作するJavaScript)"
app.post("/send", async (request, response) => {
app.post("/posts", async (request, response) => {
await client.post.create({ data: { message: request.body.message } });
response.send();
});
Expand Down