国产av一二三区|日本不卡动作网站|黄色天天久久影片|99草成人免费在线视频|AV三级片成人电影在线|成年人aV不卡免费播放|日韩无码成人一级片视频|人人看人人玩开心色AV|人妻系列在线观看|亚洲av无码一区二区三区在线播放

網(wǎng)易首頁(yè) > 網(wǎng)易號(hào) > 正文 申請(qǐng)入駐

Next.js把前端后端全包了,1個(gè)框架扛下2份活

0
分享至


去年有個(gè)數(shù)據(jù):全球Node.js項(xiàng)目里,43%已經(jīng)在用Next.js做全棧。這不是跟風(fēng),是微服務(wù)架構(gòu)里藏著一個(gè)反直覺(jué)的選擇——讓前端框架同時(shí)當(dāng)后端入口。

一位金融科技團(tuán)隊(duì)的技術(shù)負(fù)責(zé)人最近分享了他們的實(shí)踐。團(tuán)隊(duì)后端拆成了支付、用戶、認(rèn)證三個(gè)獨(dú)立微服務(wù),前端選了Next.js。但部署后他們發(fā)現(xiàn),這個(gè)框架干了兩個(gè)人的活

架構(gòu)圖:瀏覽器只認(rèn)識(shí)Next.js

具體結(jié)構(gòu)長(zhǎng)這樣。`/app`目錄下是React頁(yè)面,用戶看到的儀表盤、個(gè)人中心都在這里。但同級(jí)還有個(gè)`/app/api`目錄,里面藏著三條路由:認(rèn)證、支付、儀表盤數(shù)據(jù)聚合。

瀏覽器加載頁(yè)面時(shí),完全感知不到后端微服務(wù)的存在。它只和Next.js說(shuō)話,Next.js再轉(zhuǎn)身去敲微服務(wù)的門。這種設(shè)計(jì)模式叫BFF(Backend for Frontend,服務(wù)于前端的后端),但通常BFF是獨(dú)立部署的服務(wù),這里直接和前端代碼住在同一個(gè)項(xiàng)目里。

「我們算過(guò)賬,」技術(shù)負(fù)責(zé)人寫(xiě)道,「單獨(dú)維護(hù)一個(gè)BFF服務(wù),意味著多一套CI/CD、多一組服務(wù)器、多一個(gè)故障點(diǎn)?!?/p>

安全決策:令牌根本不落地

真正拍板的關(guān)鍵因素是金融場(chǎng)景的安全紅線。微服務(wù)返回的訪問(wèn)令牌(access token),常規(guī)做法是丟給瀏覽器存在localStorage里。但XSS攻擊一旦得手,令牌直接泄露,攻擊者就能冒充用戶操作賬戶。

Next.js的API路由運(yùn)行在服務(wù)器端,這給了他們一個(gè)解法:令牌轉(zhuǎn)成HTTP-only cookie再發(fā)給瀏覽器。JavaScript完全讀不到這個(gè)cookie,即使頁(yè)面被注入惡意腳本,攻擊者也只能干瞪眼。

代碼邏輯很直接。登錄接口收到微服務(wù)返回的令牌后,立即塞進(jìn)cookie屬性里:`httpOnly: true`、`sameSite: 'strict'`。瀏覽器收到的只有`{ success: true }`,真正的令牌它從未見(jiàn)過(guò)。

「這是整個(gè)決策里權(quán)重最高的一條,」技術(shù)負(fù)責(zé)人強(qiáng)調(diào),「安全優(yōu)先,其他都是后話?!?/p>

代價(jià)清單:不是免費(fèi)午餐

但省掉一個(gè)獨(dú)立BFF服務(wù),不代表沒(méi)有成本。技術(shù)負(fù)責(zé)人列了三條明賬:

部署復(fù)雜度上升。Next.js項(xiàng)目既要跑Node.js服務(wù),又要做服務(wù)端渲染(SSR, Server-Side Rendering),內(nèi)存和CPU占用比純靜態(tài)站點(diǎn)高出一截。團(tuán)隊(duì)最終選了Vercel的企業(yè)版,但遷移過(guò)程中踩過(guò)冷啟動(dòng)延遲的坑。

團(tuán)隊(duì)技能樹(shù)要重修。前端工程師突然要處理服務(wù)端邏輯:數(shù)據(jù)庫(kù)連接池、下游服務(wù)超時(shí)熔斷、內(nèi)存泄漏排查。「有人抱怨,我招的是React開(kāi)發(fā),不是Node運(yùn)維,」技術(shù)負(fù)責(zé)人回憶。

故障排查變繞。一次支付失敗,日志要跨三層:瀏覽器控制臺(tái)→Next.js服務(wù)端日志→微服務(wù)日志。他們后來(lái)統(tǒng)一了Trace ID,但初期定位問(wèn)題的時(shí)間確實(shí)變長(zhǎng)了。

一個(gè)意外的場(chǎng)景

架構(gòu)跑通后,團(tuán)隊(duì)發(fā)現(xiàn)Next.js還解決了一個(gè)計(jì)劃外的問(wèn)題。他們的產(chǎn)品要在第三方網(wǎng)站嵌入動(dòng)態(tài)廣告,這些廣告需要實(shí)時(shí)拉取用戶偏好數(shù)據(jù)做個(gè)性化展示。

如果讓瀏覽器直接請(qǐng)求微服務(wù),跨域配置和令牌傳遞都是麻煩。但走Next.js的API路由,同源策略天然成立,服務(wù)端還能做數(shù)據(jù)脫敏——比如把用戶ID哈希后再傳給廣告引擎。

「這個(gè)用法一開(kāi)始沒(méi)在架構(gòu)圖里,」技術(shù)負(fù)責(zé)人寫(xiě)道,「但BFF層的位置太舒服了,順理成章就長(zhǎng)出了新能力?!?/p>

目前這套架構(gòu)已經(jīng)支撐了8個(gè)月,峰值日活12萬(wàn),Next.js層平均響應(yīng)時(shí)間控制在120ms以內(nèi)。技術(shù)負(fù)責(zé)人的最后一條筆記是:「如果重新選,我會(huì)把API路由拆得更薄,只留安全和聚合邏輯,業(yè)務(wù)計(jì)算還是下沉到微服務(wù)?!?/p>

你的團(tuán)隊(duì)在用Next.js做BFF嗎?是省事了,還是反而增加了心智負(fù)擔(dān)?

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點(diǎn)推薦
意大利經(jīng)濟(jì)發(fā)展部前副部長(zhǎng):建議想要與中國(guó)合作的外企都讀一讀“十五五”規(guī)劃

意大利經(jīng)濟(jì)發(fā)展部前副部長(zhǎng):建議想要與中國(guó)合作的外企都讀一讀“十五五”規(guī)劃

界面新聞
2026-03-25 15:50:08
信達(dá)證券所長(zhǎng)被曝猥褻女員工,撫摸私密處,正臉照被扒,警方介入

信達(dá)證券所長(zhǎng)被曝猥褻女員工,撫摸私密處,正臉照被扒,警方介入

180視角
2026-03-25 15:58:41
崩潰,市級(jí)城投集團(tuán):全員薪資腰斬后還發(fā)不出工資!

崩潰,市級(jí)城投集團(tuán):全員薪資腰斬后還發(fā)不出工資!

黯泉
2026-03-25 21:19:18
中國(guó)銀行、建設(shè)銀行、民生銀行、工商銀行,發(fā)布風(fēng)險(xiǎn)提示

中國(guó)銀行、建設(shè)銀行、民生銀行、工商銀行,發(fā)布風(fēng)險(xiǎn)提示

南方都市報(bào)
2026-03-25 10:02:16
是否有中國(guó)船只順利通過(guò)霍爾木茲海峽?外交部回應(yīng)

是否有中國(guó)船只順利通過(guò)霍爾木茲海峽?外交部回應(yīng)

財(cái)聯(lián)社
2026-03-25 15:46:15
笑掉大牙!伊朗高層當(dāng)眾互撕,吹破天的強(qiáng)硬,連軍餉都發(fā)不出來(lái)

笑掉大牙!伊朗高層當(dāng)眾互撕,吹破天的強(qiáng)硬,連軍餉都發(fā)不出來(lái)

老馬拉車莫少裝
2026-03-25 19:39:00
4月1日醫(yī)保7號(hào)令落地!1965-1985年出生的,這6件事務(wù)必抓緊辦

4月1日醫(yī)保7號(hào)令落地!1965-1985年出生的,這6件事務(wù)必抓緊辦

混沌錄
2026-03-25 15:50:11
張雪峰去世真相!網(wǎng)友:偌大的公司靠他個(gè)人ip養(yǎng)活,早死是必然的

張雪峰去世真相!網(wǎng)友:偌大的公司靠他個(gè)人ip養(yǎng)活,早死是必然的

火山詩(shī)話
2026-03-25 09:18:58
特朗普:臺(tái)灣屬于中國(guó),武統(tǒng)是中方的自由,但一動(dòng)手美國(guó)會(huì)不高興

特朗普:臺(tái)灣屬于中國(guó),武統(tǒng)是中方的自由,但一動(dòng)手美國(guó)會(huì)不高興

共工之錨
2026-03-22 00:48:09
75歲劉曉慶發(fā)文:這么想我死啊

75歲劉曉慶發(fā)文:這么想我死啊

都市快報(bào)橙柿互動(dòng)
2026-03-25 15:21:36
“霍爾木茲決戰(zhàn)”,不打了

“霍爾木茲決戰(zhàn)”,不打了

中國(guó)新聞周刊
2026-03-25 18:43:08
譚瑞松,被判死緩

譚瑞松,被判死緩

新京報(bào)政事兒
2026-03-25 17:17:03
傳張雪峰二婚妻子清純甜美:去年已生子,11歲女兒遺傳繼承恐生變

傳張雪峰二婚妻子清純甜美:去年已生子,11歲女兒遺傳繼承恐生變

博士觀察
2026-03-25 21:33:04
原來(lái)如此!張雪峰去世當(dāng)天吃午飯和搶救畫(huà)面流出!更多細(xì)節(jié)曝光

原來(lái)如此!張雪峰去世當(dāng)天吃午飯和搶救畫(huà)面流出!更多細(xì)節(jié)曝光

霹靂炮
2026-03-25 21:35:07
1000億背后的陽(yáng)謀:拼多多利用中國(guó)制造的優(yōu)勢(shì),要狂掃國(guó)外市場(chǎng)

1000億背后的陽(yáng)謀:拼多多利用中國(guó)制造的優(yōu)勢(shì),要狂掃國(guó)外市場(chǎng)

風(fēng)向觀察
2026-03-25 20:46:14
退役體操冠軍,直播“擦邊”之后

退役體操冠軍,直播“擦邊”之后

中國(guó)新聞周刊
2026-03-25 21:34:08
臺(tái)獨(dú)大金主身中29槍暴斃

臺(tái)獨(dú)大金主身中29槍暴斃

雪中風(fēng)車
2026-03-24 20:19:46
實(shí)錘了,日媒爆料六本木高級(jí)陪酒女廣州運(yùn)毒被捕,日本網(wǎng)友這樣說(shuō)

實(shí)錘了,日媒爆料六本木高級(jí)陪酒女廣州運(yùn)毒被捕,日本網(wǎng)友這樣說(shuō)

日本物語(yǔ)
2026-03-25 20:56:54
堅(jiān)決反對(duì)中國(guó)任何城市申辦奧運(yùn)會(huì),國(guó)際奧委會(huì)這次怕是真失算了

堅(jiān)決反對(duì)中國(guó)任何城市申辦奧運(yùn)會(huì),國(guó)際奧委會(huì)這次怕是真失算了

南權(quán)先生
2026-03-25 15:25:11
首次全流程展示!國(guó)產(chǎn)無(wú)人機(jī)蜂群作戰(zhàn)系統(tǒng)震撼亮相

首次全流程展示!國(guó)產(chǎn)無(wú)人機(jī)蜂群作戰(zhàn)系統(tǒng)震撼亮相

環(huán)球網(wǎng)資訊
2026-03-25 14:26:17
2026-03-26 01:43:00
野生運(yùn)營(yíng)
野生運(yùn)營(yíng)
懂點(diǎn)產(chǎn)品,懂點(diǎn)AI,正在努力給平淡日子搞點(diǎn)新花樣。
36文章數(shù) 0關(guān)注度
往期回顧 全部

科技要聞

紅極一時(shí)卻草草收?qǐng)?,Sora宣布正式關(guān)停

頭條要聞

伊朗:正在搜捕逃亡美軍

頭條要聞

伊朗:正在搜捕逃亡美軍

體育要聞

35歲替補(bǔ)門將,憑什么入選英格蘭隊(duì)?

娛樂(lè)要聞

張雪峰遺產(chǎn)分割復(fù)雜!是否立遺囑成關(guān)鍵

財(cái)經(jīng)要聞

管濤:中東局勢(shì)如何影響人民幣匯率走勢(shì)?

汽車要聞

智己LS8放大招 30萬(wàn)內(nèi)8系旗艦+全線控底盤秀實(shí)力

態(tài)度原創(chuàng)

親子
本地
數(shù)碼
公開(kāi)課
軍事航空

親子要聞

智利幼兒教育覆蓋率僅43%,專家吁提升投資與優(yōu)先地位

本地新聞

來(lái)永泰同安 赴一場(chǎng)春天的約會(huì)

數(shù)碼要聞

蘋果macOS 26.4新增“慢速充電器”提示

公開(kāi)課

李玫瑾:為什么性格比能力更重要?

軍事要聞

伊朗重申非交戰(zhàn)國(guó)家船只可安全通過(guò)霍爾木茲海峽

無(wú)障礙瀏覽 進(jìn)入關(guān)懷版