亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

全局數組在我的 JavaScript 程序中保留刷新數據

全局數組在我的 JavaScript 程序中保留刷新數據

小怪獸愛吃肉 2022-10-13 15:33:09
我正在嘗試制作一個待辦事項列表,我想在其中使用表單將新項目添加到列表中。該列表工作正常,但是當我刷新頁面時,已經存儲在數組中的數據被保留。我不想要那個。我希望在每次刷新時,舊數據都會丟失,新項目會被推送到數組中。但是每次我必須殺死并重新啟動服務器時都要這樣做。initial list:li1li2li3after item addition:li1li2li3li4li5after refresh: (expected)li1li2li3after refresh: (actual o/p) li1li2li3li4li5我的代碼:const express = require("express");const bodyParser = require("body-parser");const app = express();var Item = ["Home List","Shop List","Bucket List"];app.use(bodyParser.urlencoded({extended:true}));app.set("view engine","ejs");var options = {    weekday:"long",    day:"numeric",    month:"long"};app.get("/", function (req, res) {  var today = new Date();  var currentDay = today.toLocaleDateString("en-US",options);  res.render("lists",{      day: currentDay,      newListItem : Item });});app.post("/",function(req,res){    Item.push(req.body.newItem);    res.redirect("/");});app.listen(3000, function () {  console.log("Server on port 3000");});
查看完整描述

1 回答

?
GCT1015

TA貢獻1827條經驗 獲得超4個贊

要做到這一點,需要能夠區分/由于用戶按下刷新而發出 GET 請求的瀏覽器和由于/任何其他原因發出 GET 請求的瀏覽器……而 HTTP確實不是為此而設計的。


“刷新”的意思是“給我這個資源的最新版本”。這并不意味著資源應該響應請求而更改(除非資源類似于旨在顯示當前時間的頁面……但那里的更改是由時間更改而不是刷新本身觸發的)。


如果你想重置數組,然后寫一個明確設計的端點來重置它,然后為用戶提供一個表單和提交按鈕,該按鈕發布到該 URL。


app.post("/reset",function(req,res){

    Item = ["Home List","Shop List","Bucket List"]

    res.redirect("/");

});


查看完整回答
反對 回復 2022-10-13
  • 1 回答
  • 0 關注
  • 113 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號