摘要:中的加基本上已成為的標配。許多項目已開始使用非關系型數據庫。項目構建這里一定要用常用中間件介紹生成的應用已經包含常用中間件了,這里僅說它里面沒有用到的。
Java中的Spring MVC加MyBatis基本上已成為Java Web的標配。Node JS上對應的有Koa、Express、Mongoose、Sequelize等。Koa一定程度上可以說是Express的升級版。許多Node JS項目已開始使用非關系型數據庫(MongoDB)。Sequelize對非關系型數據庫(MSSQL、MYSQL、SQLLite)做了支持。Koa項目構建
cnpm install -g koa-generator // 這里一定要用koa2 koa2 /fooKoa常用中間件介紹
koa-generator生成的應用已經包含常用中間件了,這里僅說它里面沒有用到的。
koa-lessapp.use(require("koa-less")(__dirname + "/public"))
必須在static前use,不然會無效。
stylesheets文件夾下新建styles.less,并引入所有模塊化less文件。
@import "foo.less"; @import "bar.less";
這樣所有的樣式會被編譯成一個style.css。在模板(pug)中引用style.css就行了。
koa-session// 設置app keys,session會根據這個進行加密 app.keys = ["some secret hurr"]; // 配置session config const CONFIG = { key: "bougie:session", /** (string) cookie key (default is koa:sess) */ maxAge: 1000 * 60 * 60 * 24 * 7, overwrite: true, /** (boolean) can overwrite or not (default true) */ httpOnly: true, /** (boolean) httpOnly or not (default true) */ signed: true, /** (boolean) signed or not (default true) */ rolling: true, /** (boolean) Force a session identifier cookie to be set on every response. The expiration is reset to the original maxAge, resetting the expiration countdown. (default is false) */ renew: false, /** (boolean) renew session when session is nearly expired, so we can always keep user logged in. (default is false)*/ }; // 應用中間件 app.use(session(CONFIG, app));
這個必須在router前use,不然會無效。
基本使用,可以當成一個普通對象
// 賦值 ctx.session.statu = value // 取值 ctx.session.statu // 刪除 ctx.session.statu = nullkoa-proxies
用于代理配置
const proxy = require("koa-proxies") app.use(proxy("/octocat", { target: "https://api.github.com/users", changeOrigin: true, agent: new httpsProxyAgent("http://1.2.3.4:88"), rewrite: path => path.replace(/^/octocat(/|/w+)?$/, "/vagusx"), logs: true }))路由控制
開發主要集中在路由控制這里,包括restful接口和模板渲染
獲取參數(request) 查詢參數(?param=a)ctx.query.param路由參數(/:id)
ctx.params.idPOST參數(JSON或Form)
ctx.request.body請求回應(response)
服務器響應給客戶端的數據
restfulctx.body = yourData模板渲染
默認從views目錄開始,不許加文件后綴
ctx.render("layout", yourData)路由攔截
未登錄時拒絕請求,這樣會返回404
const userAuth = (ctx, next) => { let isLogin = ctx.session.isLogin if(isLogin) return next() } router.use("/", userAuth)
此操作會包含在路由,如"/a"、"/b"等,需在子路由之前use,不然會無效
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/94321.html
摘要:感謝大神的免費的計算機編程類中文書籍收錄并推薦地址,以后在倉庫里更新地址,聲音版全文狼叔如何正確的學習簡介現在,越來越多的科技公司和開發者開始使用開發各種應用。 說明 2017-12-14 我發了一篇文章《沒用過Node.js,就別瞎逼逼》是因為有人在知乎上黑Node.js。那篇文章的反響還是相當不錯的,甚至連著名的hax賀老都很認同,下班時讀那篇文章,竟然坐車的還坐過站了。大家可以很...
摘要:感謝大神的免費的計算機編程類中文書籍收錄并推薦地址,以后在倉庫里更新地址,聲音版全文狼叔如何正確的學習簡介現在,越來越多的科技公司和開發者開始使用開發各種應用。 說明 2017-12-14 我發了一篇文章《沒用過Node.js,就別瞎逼逼》是因為有人在知乎上黑Node.js。那篇文章的反響還是相當不錯的,甚至連著名的hax賀老都很認同,下班時讀那篇文章,竟然坐車的還坐過站了。大家可以很...
摘要:返回后,代表操作已完成,記錄結束時間并輸出。從零組裝因為對的學習和使用,知道了自己對于后臺框架的真實需求。所以這回決定不用之內的工具,而是自己從零開始,組裝一個適合自己的框架。就是去和上,尋找一個一個的包并組裝在一起了而已。 起因 作為一個前端,Node.js算是必備知識之一。同時因為自己需要做一些后臺性的工作,或者完成一個小型應用。所以學習了Node的Express框架,用于輔助和加...
閱讀 2922·2021-11-24 09:39
閱讀 3599·2021-11-22 13:54
閱讀 3409·2021-11-16 11:45
閱讀 2434·2021-09-09 09:33
閱讀 3195·2019-08-30 15:55
閱讀 1290·2019-08-29 15:40
閱讀 920·2019-08-29 15:19
閱讀 3397·2019-08-29 15:14