動態

@weidewei

基於Koa2打造屬於自己的MVC框架,仿egg的簡易版本

背景 Express和Koa作為輕量級的web框架,沒有任何約束的框架在一開始的時候會非常的爽快,開發幾個demo,手到擒來,但是一旦代碼真正上去的時候(而且一定會),你就會發現,大量重複的操作,重複的邏輯。導致項目的複雜度越來越高,代碼越來越醜,非常的難以維護。我的quark-h5也是開始隨意的寫,寫到最後只能重構一波了。正好期間做了個在線文檔管理的項目用了egg.js,讓我這種 node 小白

weidewei 頭像

@weidewei

昵稱 圍的圍

@jiangpengfei_5ecce944a3d8a

手寫koa-static源碼,深入理解靜態服務器原理

這篇文章繼續前面的Koa源碼系列,這個系列已經有兩篇文章了: 第一篇講解了Koa的核心架構和源碼:手寫Koa.js源碼 第二篇講解了@koa/router的架構和源碼:手寫@koa/router源碼 本文會接着講一個常用的中間件----koa-static,這個中間件是用來搭建靜態服務器的。 其實在我之前使用Node.js原生API寫一個web服務器已經講過怎麼返回一個靜態文件了,代碼雖然

@xiaolei_599661330c0cb

Koa1技術分享

寫在前面   Koa使用了ES6規範的generator和異步編程是一個更輕量級Web開發的框架,Koa 的先天優勢在於 generator。由於是我個人的分享交流,所以Node基礎、ES6標準、Web開發基礎以及Koa的"Hello World"程序都不在討論,希望各位小夥伴提出意見和指導。   PS:Koa 內核中沒有捆綁任何中間件,但不用擔心,Koa 擁有極其強悍的拓展性,正文所有中間

@songhuijin

koa的基本使用

1、初始化package.json npm init 2、安裝koa2 npm install koa 3、hello代碼 ctx.body="hello"必須寫,否則頁面出現Not Found const koa =require('koa') const app = new koa() app.use(async (ctx)={ ctx.body="hello" }) app.l

songhuijin 頭像

@songhuijin

昵稱 用户bPbA4lM

@dongwanhong

【從零到壹】Koa 從理解到實現

【點擊查看文中的相關源碼】 根據官網的介紹,Koa 是一個新的 Web 框架,致力於成為 Web 應用和 API 開發領域中的一個更小、更富有表現力和更健壯的基石。 通過 async 函數,Koa 不僅遠離回調地獄,同時還有力地增強了錯誤處理。而且,一個關鍵的設計點是在其低級中間件層中提供了高級“語法糖”,這包括諸如內容協商,緩存清理,代理支持和重定向等常見任務的方法。 基礎 實際上,我們常見的

dongwanhong 頭像

@dongwanhong

昵稱 Kisstar

@nulidexiaocongmang

koa實踐總結

什麼是koa? koa是Express的下一代基於Node.js的web框架。使用 koa 編寫 web 應用,通過組合不同的 generator,可以免除重複繁瑣的回調函數嵌套,並極大地提升常用錯誤處理效率。Koa 不在內核方法中綁定任何中間件,它僅僅提供了一個輕量優雅的函數庫,使得編寫 Web 應用和API變得得心應手。 Koa能幹什麼? 主要用途 網站(比如cnode這樣的論壇) ap

nulidexiaocongmang 頭像

@nulidexiaocongmang

昵稱 MangoGoing

@pulsgarney

在NestJS 中添加對Shopify 的WebHook 驗證

怎麼添加對Shopify 的WebHook 驗證 背景介紹 Shopify 是一家一站式SaaS 模式的電商服務平台,總部位於加拿大首都渥太華,專注於為跨境電商用户提供海外品牌建立及銷售渠道管理。為電商賣家提供搭建網店的技術和模版,管理全渠道的營銷、售賣、支付、物流等服務。 代碼實現 Koa 如果你是想在Koa 中對接Shopify, 則可以參照下面的做法: // 這是你從Shopify 上得到的

pulsgarney 頭像

@pulsgarney

昵稱 阿兵

@ruochuan12

50行代碼串行Promise,koa洋葱模型原來是這麼實現?

1. 前言 大家好,我是若川。歡迎關注我的公眾號若川視野,最近組織了源碼共讀活動《1個月,200+人,一起讀了4周源碼》,感興趣的可以加我微信 ruochuan12 參與,長期交流學習。 之前寫的《學習源碼整體架構系列》 包含jQuery、underscore、lodash、vuex、sentry、axios、redux、koa、vue-devtools、vuex4十餘篇源碼文章。其中最新的兩篇是

ruochuan12 頭像

@ruochuan12

昵稱 若川

@kestrel_task

Koa2+mysql 搭建用户信息註冊和登錄接口服務

koa2 官網 https://koa.bootcss.com/ 什麼是koa? Koa 是一個新的 web 框架,由 Express 幕後的原班人馬打造, 致力於成為 web 應用和 API 開發領域中的一個更小、更富有表現力、更健壯的基石。 通過利用 async 函數,Koa 幫你丟棄回調函數,並有力地增強錯誤處理。 Koa 並沒有捆綁任何中間件, 而是提供了一套優雅的方法,幫助您快速而愉快地

kestrel_task 頭像

@kestrel_task

昵稱 微芒不朽

@nbidashuju

NBI可視化平台內置多種風格多套模板,做數據可視化不費勁

NBI可視化平台版本已經更新到4.9.1啦,在NBI可視化平台4.9.1版本中內置了多種風格、多套模板可以供用户選擇使用,並且在可視化視覺上面做了增強 NBI具有豐富的數據源對接能力 易於操作的可視化編輯器 豐富的組件庫: 易於功能擴展的腳本功能: NBI大數據可視化分析平台作為新一代自助式(體驗地址:http://

nbidashuju 頭像

@nbidashuju

昵稱 NBI大數據

@rookiegz

xzgz.top網站開發記錄

xzgz.top 網站記錄 主要技術棧 應用主要是由 koa 構建,其中 nextjs 只負責頁面構建完成服務端渲染。以下是主要應用的技術 後台 Koa:網站主題內容 koa-router:網站後端路由 koa-session:應用的 session 寫入 nodemailer:發送郵件 mysql2:數據庫操作 nodemon:開發模式下熱更新 typescript ts-no

rookiegz 頭像

@rookiegz

昵稱 RookieGz

@kanjianliao

【node】koa-logger

koa-logger源碼解析 以GET請求“/”為例子,koa-logger會打印以下日誌: -- GET / GET / - 790ms -- GET / 200 803ms 185b 分為是請求與響應的日誌 // koa-logger 主函數 function dev (opts) { // print函數,默認參數為空時是調用console.log,如果有transporter選

kanjianliao 頭像

@kanjianliao

昵稱 看見了

@zhaozixing

SpringBoot使用異步@EnableAsync、@Async

Spring boot通過@EnableAsync、@Async配合來實現異步調用的。 舉一個理髮店的例子吧,比如3位理髮師,5位顧客來理髮。 下面上代碼 通過@EnableAsync、@Configuration配置一個默認的線程池,充當理髮師 CorePoolSize(3);即3位理髮師 import org.springframework.aop.interceptor.AsyncE

zhaozixing 頭像

@zhaozixing

昵稱 zhaozixing

@chanmufeng

異步阻塞IO是什麼鬼?

這篇文章我們來聊一個很簡單,但是很多人往往分不清的一個問題,同步異步、阻塞非阻塞到底怎麼區分? 開篇先問大家一個問題:IO多路複用是同步IO還是異步IO? 先思考一下,再繼續往下讀。 鉅著《Unix網絡編程》將IO模型劃分為5種,分別是 阻塞IO 非阻塞IO IO複用 信號驅動IO 異步IO 個人認為這麼分類並不是很好,因為從字面上理解阻塞IO和非阻塞IO就已經是數學意義上的全集了

chanmufeng 頭像

@chanmufeng

昵稱 蟬沐風

@taozi_60b0b3c71b1a8

IO:阻塞和非阻塞、同步和異步

阻塞和非阻塞 阻塞的時候線程會被掛起 阻塞: 當數據還沒準備好時,調用了阻塞的方法,則線程會被掛起,會讓出CPU時間片,此時是無法處理過來的請求,需要等待其他線程來進行喚醒,該線程才能進行後續操作或者處理其他請求。 非阻塞: 意味着,當數據還沒準備好的時候,即便我調用了阻塞方法,該線程也不會被掛起,後續的請求也能夠被處理。 同步 同步和異步跟串行和並行非常形似。 假設在一個場景下:完成一個大任務需

taozi_60b0b3c71b1a8 頭像

@taozi_60b0b3c71b1a8

昵稱 Java架構師

@jamesfancy

Loading ... done

引子 在前面界面開發的過程中,為了增強在與後端交互過程中的用户體驗,通常會顯示 Loading 動畫。Loading 動畫會在與後端交互結束的時候關閉。這是一個很常規的需求,技術實現也不復雜。 showLoading(); axios.request(...) .then(...) .finally(() = hideLoading()); Node.js 和大部分瀏覽器都在 20

jamesfancy 頭像

@jamesfancy

昵稱 邊城

@gongzhengyang

rust使用hashmap存儲函數並調用

背景 在rust 1.67.1 (d5a82bbd2 2023-02-07) 版本測試正常 使用rust的hashmap存儲i32為key, 函數作為value, 當查詢某個key如果存在具體的函數則調用 支持異步函數存儲與調用 主要方法 如果類型不同,則需要包一層Box,把存儲的內容放到堆內存上,保證編譯器可以正常計算內存大小,主要是針對存儲在棧上的內存大小 如果是異步方法,由於異步函數沒

gongzhengyang 頭像

@gongzhengyang

昵稱 龔正陽

@journey_64224c9377fd5

大話網絡通信

1、術語 併發 vs 並行 併發和並行是相關的概念,但有一些小的區別。併發意味着兩個或多個任務正在取得進展,即使它們可能不會同時執行。例如,這可以通過時間切片來實現,其中部分任務按順序執行,並與其他任務的部分混合。另一方面,當執行的任務可以真正同時進行時,就會出現並行 簡單説啓動一個線程在一個core上就是並行,啓動兩個線程在一個core上就是併發 異步 vs 同步 如果調用者

@cuicui_623c4b541e91e

如何優雅地組織Rust項目中的異步代碼?

概要 很多使用過Async Rust的人都可能有過被其要求的約束所困擾的經歷,例如,spawned task有'static的要求,MutexGuard不能跨越.await,等等。克服這些約束需要仔細地設計代碼結構,很可能會導致晦澀和嵌套的代碼,這對開發人員和審查人員都是一種挑戰。在這篇文章中,我將首先列出我在編寫async Rust代碼時的一些痛點。然後,我將指出我們真正需要異步代碼的場景,並討

cuicui_623c4b541e91e 頭像

@cuicui_623c4b541e91e

昵稱 Datenlord

@kuanrongdeshanyang

Python多線程編程入門指南

導語:在許多應用場景中,我們需要同時執行多個任務。Python 提供了多線程(multithreading)支持,可以讓我們更高效地完成任務。在本文中,我們將探討 Python 中的多線程編程基礎知識,並通過一個簡單示例演示如何使用它。 一、併發編程簡介 併發編程是一種編程範式,允許多個任務在同時執行。在多核處理器和多處理器系統中,這種方法可以顯著提高程序的執行效率。Python 提供了多種併發編

kuanrongdeshanyang 頭像

@kuanrongdeshanyang

昵稱 小小張説故事

@jdcdevloper

文盤Rust -- tokio綁定cpu實踐 | 京東雲技術團隊

tokio 是 rust 生態中流行的異步運行時框架。在實際生產中我們如果希望 tokio 應用程序與特定的 cpu core 綁定該怎麼處理呢?這次我們來聊聊這個話題。 首先我們先寫一段簡單的多任務程序。 use tokio::runtime; pub fn main() { let rt = runtime::Builder::new_multi_thread() .e

jdcdevloper 頭像

@jdcdevloper

昵稱 京東雲開發者

@data_ai

Bean異步初始化,讓你的應用啓動飛起來

如果你的系統啓動耗時250s以上,文章思路應該可以幫到你。 一、背景 近期,在做應用啓動提速相關工作的過程中,我們發現,應用啓動速度主要的瓶頸在於bean的初始化過程(init,afterPropertiesSet方法的耗時)。很多中間件bean的初始化邏輯涉及到網絡io,且在沒有相互依賴的情況下串行執行。將這一部分中間件bean進行異步加載,是提升啓動速度的一個探索方向。 二、解決方案 自動

data_ai 頭像

@data_ai

昵稱 數據庫知識分享者

@ligaai

SaaS 出海,如何搭建國際化服務體系?(三)

防噎指南:這可能是你看到的乾貨含量最高的 SaaS 出海經驗分享,請準備好水杯,放肆食用(XD。 當越來越多中國 SaaS 企業選擇開啓「國際化」副本,出海便儼然成為國內 SaaS 的新·角鬥場。 LigaAI 觀察到,出海浪潮助生了許多「Day One 就做國際化」的產品和團隊,而出海大軍中也不乏在國內已經完成 PMF 的熟悉面孔。一個主要由中國人構成的團隊在推進海外產品落地的過程中,可能

ligaai 頭像

@ligaai

昵稱 LigaAI