iT邦幫忙

0

關於後端的小問題

  • 分享至 

  • xImage

各位大大好
小弟我目前正在透過udemy課程學習全端的知識
目前學到了API的章節
在學習的過程中有個想理解但一直找不到確切原因的問題
以下是程式碼片段
import express from "express";
import bodyParser from "body-parser";

const app = express();
const port = 3000;
const masterKey = "XXX";

app.use(bodyParser.urlencoded({ extended: true }));

app.get("/jokes/:id",(req,res)=>{
const id = parseInt(req.params.id);
const foundJoke = jokes.find((joke)=>joke.id===id);
res.json(foundJoke);
})

app.post("/jokes",(req,res)=>{
const newJoke = {
id : jokes.length +1,
jokeText: req.body.text,
jokeType: req.body.type,
};
jokes.push(newJoke);
console.log(jokes.slice(-1));
res.json(newJoke);
});

//模擬json檔
var jokes=[...];

app.listen(port, () => {
console.log(Successfully started server on port ${port}.);
});
這部分我想理解的是為什麼我透過postman傳送一則post請求並新增一則joke之後,程式碼中jokes明明沒有新增任何內容,但我透過postman傳送一則get請求最近新增的那項內容時卻能得到回覆?

請求各位解答了,感激不盡

froce iT邦大師 1 級 ‧ 2024-01-15 00:18:08 檢舉
var jokes=[...];
這邊伺服器有割一塊記憶體存資料啊,你post後就是直接存在這個array裡了。

把伺服器關掉重開就不會有新增的了。

jokes.push(newJoke);
這句就是把post進去的丟到jokes裡。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
janlin002
iT邦好手 1 級 ‧ 2024-01-15 09:38:47

你在使用 post 方法時就已經將 newJoke pushjokes 裡了

jokes.push(newJoke)

所以當使用 get 方法取得 jokes 的資料時,自然就會有 newJoke 的資料了

我要發表回答

立即登入回答