亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術(shù)文章
文章詳情頁

javascript - Nodejs服務(wù)器中 應(yīng)該何時(shí)res.end()呢?

瀏覽:112日期:2023-09-11 08:43:38

問題描述

有這樣的一個(gè)場景 ’/blog’ 路由下要處理用戶提交的數(shù)據(jù)假設(shè)要把三份數(shù)據(jù)存儲(chǔ)給三個(gè)key 然后代碼寫出來就變成這樣

function handlePostBlog(req, res){ resid_client.set( key1, data1, function(err, response){resid_client.set(key2, data2, function(err,response){ resid_client.set(key3, data3, function(err, response){if(response === ’ok’){ res.writeHead(200, ...) res.end()} })}) })}

不考慮好不好看。。雖然用promise包裝的好看一些 但是在最后一個(gè)回調(diào)中res.end()來關(guān)閉連接,是不是存在問題?這個(gè)請(qǐng)求會(huì)被掛起很長一段時(shí)間把?一般這種地方應(yīng)該怎么處理?因?yàn)橹恍枰猻et而不需要返回結(jié)果給用戶,所以收到請(qǐng)求之后就直接res.end()來關(guān)閉連接可以不?

問題解答

回答1:

這取決于你是否希望這個(gè) HTTP 請(qǐng)求的返回結(jié)果與數(shù)據(jù)庫操作的結(jié)果有關(guān)聯(lián)性,以及用戶交互設(shè)計(jì)是否容忍這個(gè)操作所花費(fèi)的時(shí)間。

你在設(shè)計(jì)這個(gè) ’/blog’ 接口時(shí),需要明確指明 HTTP 返回 200 意味著什么。如果你們的業(yè)務(wù)場景只關(guān)心數(shù)據(jù)交付到后端,不關(guān)心后端是否正確存儲(chǔ)到數(shù)據(jù)庫,那肯定可以直接結(jié)束掉 HTTP 請(qǐng)求。如果你們希望終端用戶得到這個(gè)確切的提交結(jié)果,那需要考慮交互層面了,設(shè)計(jì)良好的交互效果,2-6秒的等待,用戶體驗(yàn)不會(huì)很差(指AJAX請(qǐng)求場景下,打開新頁面場景下還是慎重)。寫三次redis幾乎是不花時(shí)間,比起 HTTP 請(qǐng)求本身的鏈路延遲根本不算什么。

具體業(yè)務(wù)場景還要具體分析。碰到特別耗時(shí)的操作,前端提交操作請(qǐng)求后輪訓(xùn)結(jié)果也不失為一種解決方案。

回答2:

看頁面顯示和數(shù)據(jù)庫操作結(jié)果有沒有相關(guān)性。如果有相關(guān)性,可以等待數(shù)據(jù)庫操作結(jié)束之后返回。也可以做成異步隊(duì)列的方式直接返回,成功后在推送結(jié)果。最終怎么樣,還是看你需求。

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 欧美成人性动漫在线观看 | 九九精品免费观看在线 | 成人欧美精品大91在线 | 美女张开腿让人桶 | 免费看a级片 | 国产国产人免费视频成69堂 | 欧美aaa级| 国产午夜亚洲精品一区网站 | 香港经典a毛片免费观看爽爽影院 | 91福利国产在线观一区二区 | 欧美第一视频 | 免费欧洲毛片a级视频无风险 | 久久一本综合 | 亚洲高清在线观看视频 | 国产一级一国产一级毛片 | 波多野结衣在线播放视频 | 国产上床视频 | 亚洲人成免费网站 | 亚洲精品久久久久综合91 | 日韩不卡一区二区 | 一级特黄爽大片刺激 | 91福利国产在线观看香蕉 | 女人张开腿给人桶免费视频 | 日韩精品午夜视频一区二区三区 | 99视频在线免费 | 黄篇网址 | 日韩a一级欧美一级 | 亚洲国产欧美在线人成aaa | 中文字幕第9页 | 色综合精品久久久久久久 | 福利片成人午夜在线 | 欧美成人久久一级c片免费 欧美成人看片黄a免费 | 日韩男人天堂 | 欧美日韩另类视频 | 欧美成人精品一级高清片 | 日韩在线精品视频 | 国产一级做a爱免费观看 | 精品久久久久久久久久香蕉 | 精品九九视频 | 日本免费的一级绿象 | 亚洲精品一二区 |