亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

從項(xiàng)目中由淺入深的學(xué)習(xí)koa 、mongodb(4)

null1145 / 3092人閱讀

摘要:序列文章從項(xiàng)目中由淺入深的學(xué)習(xí)微信小程序和快應(yīng)用從項(xiàng)目中由淺入深的學(xué)習(xí)從項(xiàng)目中由淺入深的學(xué)習(xí)前言的出現(xiàn)前端已經(jīng)可以用一把梭從前端寫(xiě)到后臺(tái)。

序列文章

從項(xiàng)目中由淺入深的學(xué)習(xí)vue,微信小程序和快應(yīng)用 (1)
從項(xiàng)目中由淺入深的學(xué)習(xí)react (2)
從項(xiàng)目中由淺入深的學(xué)習(xí)typescript (3)

前言
node.js的出現(xiàn)前端已經(jīng)可以用js一把梭,從前端寫(xiě)到后臺(tái)。
本文從后臺(tái)利用node的框架koa+mongodb實(shí)現(xiàn)數(shù)據(jù)的增刪改查和注冊(cè)接口,前端利用umi + dva +ant-design-pro來(lái)實(shí)現(xiàn)數(shù)據(jù)渲染。實(shí)現(xiàn)一個(gè)小全棧project,就是so-easy
1.效果圖


react-koa 全棧項(xiàng)目,歡迎star

2.技術(shù)棧

koa:node框架
koa-bodyparser:解析body的中間件
koa-router :解析router的中間件
mongoose :基于mongdodb的數(shù)據(jù)庫(kù)框架,操作數(shù)據(jù)
nodemon:后臺(tái)服務(wù)啟動(dòng)熱更新

3.項(xiàng)目目錄

├── app // 主項(xiàng)目目錄
│ ├── controllrts // 控制器目錄(數(shù)據(jù)處理)
│ │ └── ... // 各個(gè)表對(duì)應(yīng)的控制器
│ ├── middleware // 中間件目錄
│ │ └── resFormat.js // 格式化返回值
│ ├── models // 表目錄(數(shù)據(jù)模型)
│ │ ├── course.js // 課程表
│ │ └── user.js // 用戶表
│ └── utils // 工具庫(kù)
│ │ ├── formatDate.js // 時(shí)間格式化
│ │ └── passport.js // 用戶密碼加密和驗(yàn)證工具
├── db-template // 數(shù)據(jù)庫(kù)導(dǎo)出的 json 文件
├── routes // 路由目錄
│ └── api // 接口目錄
│ │ ├── course_router.js // 課程相關(guān)接口
│ │ └── user_router.js // 用戶相關(guān)接口
├── app.js // 項(xiàng)目入口
└── config.js // 基礎(chǔ)配置信息

4.項(xiàng)目啟動(dòng)步驟

1.git clone
2.安裝mongodb:http://www.runoob.com/mongodb...
3.安裝 Robomongo是mongodb可視化操作工具 (可選)
4.啟動(dòng)
cd koa-template
npm run start
cd react-template
npm run start

注意:
mongodb啟動(dòng)默認(rèn)端口號(hào)是27017,啟動(dòng)看是否被占用
后端項(xiàng)目端口號(hào)是3000,可以在koa-template/config.js里面修改

5.koa的主要API
API 作用
new koa() 得到koa實(shí)例
use koa的屬性,添加中間件
context 將 node 的 request 和 response 對(duì)象封裝到單個(gè)對(duì)象中,每個(gè)請(qǐng)求都將創(chuàng)建一個(gè) Context,通過(guò)ctx訪問(wèn)暴露的方法
ctx方法 request:請(qǐng)求主體;
response:響應(yīng)主體;
ctx.cookies.get:獲取cookie;
ctx.throw:拋出異常
request屬性 header:請(qǐng)求頭;
method:方法;
url:請(qǐng)求url;
originalUrl請(qǐng)求原始URL;
href:完整URL;
hostname:主機(jī)名;
type:請(qǐng)求頭類型;
response屬性 header:響應(yīng)頭;
status:狀態(tài),未設(shè)置默認(rèn)為200或204;
body:響應(yīng)主體,string(提示信息) Buffer Stream(流) Object Array JSON-字符串化ull 無(wú)內(nèi)容響應(yīng);
get:獲取響應(yīng)頭字段;
set:設(shè)置響應(yīng)頭;
append:添加響應(yīng)頭;
type:響應(yīng)類型;
lastModified:返回為 Date, 如果存在;
etag:設(shè)置緩存
6.koa-router主要API
API 作用
get get方法
post post方法
patch patch方法
delete delete方法
prefix 配置公共路由路徑
use 將路由分層,同一個(gè)實(shí)例router中可以配置成不同模塊
ctx.params 獲取動(dòng)態(tài)路由參數(shù)
fs 分割文件
7.mongoose主要API
API 作用
Schema 數(shù)據(jù)模式,表結(jié)構(gòu)的定義;每個(gè)schema會(huì)映射到mongodb中的一個(gè)collection,它不具備操作數(shù)據(jù)庫(kù)的能力
model schema生成的模型,可以對(duì)數(shù)據(jù)庫(kù)的操作

model的操作database方法

API 方法
create/save 創(chuàng)建
remove 移除
delete 刪除一個(gè)
deleteMany 刪除多個(gè)
find 查找
findById 通過(guò)id查找
findOne 找到一個(gè)
count 匹配文檔數(shù)量
update 更新
updateOne 更新一個(gè)
updateMany 更新多個(gè)
findOneAndUpdate 找到一個(gè)并更新
findByIdAndUpdate 通過(guò)id查找并更新
findOneAndRemove 找到一個(gè)并移除
replaceOne 替換一個(gè)
watch 監(jiān)聽(tīng)變化

query查詢API

API 作用
where 指定一個(gè) path
equals 等于
or
nor 不是
gt 大于
lt 小于
size 大小
exists 存在
within 在什么之內(nèi)

注:Query是通過(guò)Model.find()來(lái)實(shí)例化
aggregate(聚合)API

API 作用
append 追加
addFields 追加文件
limit 限制大小
sort 排序

注:aggregate=Model.aggregate()

更多詳細(xì)API,請(qǐng)戳

8.react項(xiàng)目詳情

從項(xiàng)目中由淺入深的學(xué)習(xí)react

9.總結(jié)

一個(gè)koa項(xiàng)目就是從koa-bodyparser來(lái)解析body,koa-router來(lái)分發(fā)和處理接口,mongose來(lái)操作database。入門(mén)就是so-easy!

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/19519.html

相關(guān)文章

  • JavaScript - 收藏集 - 掘金

    摘要:插件開(kāi)發(fā)前端掘金作者原文地址譯者插件是為應(yīng)用添加全局功能的一種強(qiáng)大而且簡(jiǎn)單的方式。提供了與使用掌控異步前端掘金教你使用在行代碼內(nèi)優(yōu)雅的實(shí)現(xiàn)文件分片斷點(diǎn)續(xù)傳。 Vue.js 插件開(kāi)發(fā) - 前端 - 掘金作者:Joshua Bemenderfer原文地址: creating-custom-plugins譯者:jeneser Vue.js插件是為應(yīng)用添加全局功能的一種強(qiáng)大而且簡(jiǎn)單的方式。插....

    izhuhaodev 評(píng)論0 收藏0
  • vue+koa+mongodb 個(gè)人博客

    摘要:搭建個(gè)人博客很久以來(lái)就特別想搭建一個(gè),但是都是由于技術(shù)原因沒(méi)有搭建起來(lái)。學(xué)習(xí),并對(duì)代碼進(jìn)行重構(gòu)。因?yàn)檎麄€(gè)博客要完整的從項(xiàng)目構(gòu)建到項(xiàng)目上線的確比較繁瑣,這里只是給想要試試與一個(gè)代碼參考。 vue+koa+mongodb 搭建個(gè)人博客 很久以來(lái)就特別想搭建一個(gè)blog,但是都是由于技術(shù)原因沒(méi)有搭建起來(lái)。以前學(xué)習(xí)github的時(shí)候準(zhǔn)備采用github與hexo來(lái)搭建。但是后來(lái)想了一下自己也在...

    ivan_qhz 評(píng)論0 收藏0
  • 初探MongoDB:暴力美學(xué)

    摘要:為了在項(xiàng)目中更好的使用來(lái)完成我們的業(yè)務(wù),我們探究了性能暴力的成因以及如何更加合理的使用。的出現(xiàn)能夠快速的完成系統(tǒng)的開(kāi)發(fā)于拓展需求。不同的業(yè)務(wù)會(huì)導(dǎo)致不同的數(shù)據(jù)庫(kù)使用情況。緩存類型根據(jù)情況選擇或高速度也是有代價(jià)的。轉(zhuǎn)自初探暴力美學(xué) AUTH:PHILO version:2.0 showImg(http://7viiaq.com1.z0.glb.clouddn.com/u=14409196...

    yy13818512006 評(píng)論0 收藏0
  • Vue+Koa+Mongodb 小練習(xí)

    摘要:小練習(xí)作者本文首發(fā)博客功能基于進(jìn)行登錄,注冊(cè),留言的簡(jiǎn)單網(wǎng)站。所以這個(gè)小練習(xí),從一個(gè)簡(jiǎn)單的方面入手,希望能給踩過(guò)同樣多坑的同路人一點(diǎn)啟發(fā)。就意味著要重新登錄。的作用是進(jìn)行進(jìn)程守護(hù),當(dāng)你的意外的停止的時(shí)候,進(jìn)行重啟。 Vue+Koa+Mongodb 小練習(xí) 作者: Pawn 本文首發(fā): Pawn博客 功能: 基于vue koa mongodb進(jìn)行登錄,注冊(cè),留言的簡(jiǎn)單網(wǎng)站。 體驗(yàn)地址: ...

    趙春朋 評(píng)論0 收藏0
  • 適合初學(xué)者koa2+mongodb初體驗(yàn)

    摘要:前言筆者的前端開(kāi)發(fā)已經(jīng)有些時(shí)日了,對(duì)于一直保留著最初的恐懼,倘若一座不可跨越的高山,思前想后終于邁出最后一步,踏入了開(kāi)拓自己視野的新視界,希望在看這篇文章的你可以一起跟我動(dòng)手嘗試。面向的下一代框架。由團(tuán)隊(duì)打造,特點(diǎn)優(yōu)雅簡(jiǎn)潔靈活體積小。 showImg(https://segmentfault.com/img/bVbuorM?w=1514&h=568); 前言 ?????筆者的前端開(kāi)發(fā)已...

    Jacendfeng 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<