Node.js + express + access-db 輕松實現(xiàn)小程序全棧開發(fā)(下)

1.新增數(shù)據(jù)

根據(jù)前面的表和字段禁灼,現(xiàn)在我們要在小程序端進(jìn)行新增數(shù)據(jù)操作荷荤。

1). 首頁缓熟,我們先寫新增數(shù)據(jù)接口,在/routes/anime.js加入以下代碼走诞。新增數(shù)據(jù)一般用post請求副女。因為涉及到異步操作,所以用async蚣旱、await進(jìn)行操作碑幅。因為沒做文件上傳,所以姻锁,cover_url我就直接寫了枕赵。圖片是放在/public/images下面的。

...
const {mysql, mongodb} = require('access-db')  //引入mysql操作方法位隶,如果是mongodb拷窜,就引入對應(yīng)的
...
//這里用post
routerAnime.post('/add', async function(req, res, next) {
  const {title, total, type} = req.body  //小程序端上傳的數(shù)據(jù)
  try{
    let tempRes = await mysql.set('anime', {
      title: title,
      cover_url: 'http://localhost:3000/images/1.webp',
      total: total,
      type: type,
      follows: 23
    })
    res.json(tempRes.data.insertId)
  }catch(err) {
    console.log('errrr', err)
  }
});

req.body就是post請求時,所帶的參數(shù)涧黄。mysql.set方法篮昧,就是新增數(shù)據(jù),第一個參數(shù)就是數(shù)據(jù)表表名笋妥,第二個參數(shù)懊昨,就是要新增的內(nèi)容。字段名必須和數(shù)據(jù)表里面字段名一致春宣。此時的接口地址為:http://localhost:3000/anime/add 修改代碼之后酵颁,記得重新啟動后臺服務(wù)

2). 在微信小程序里面,添加一個綁定事件addOneData

index.wxml

<!--index.wxml-->
<view class="container">
  <button bindtap="addOneData">新增數(shù)據(jù)</button>
</view>

index.js

...
addOneData(){
  wx.request({
    url: 'http://localhost:3000/anime/add',
    method: 'POST',
    data: {
      title: '鬼滅之刃',
      total: 26,
      type: 1
    },
    success: (res) => {
      console.log('res', res)
    }
  })
}
...

最后月帝,點擊按鈕躏惋,即可成功添加數(shù)據(jù)了,注意打開不校驗域名的設(shè)置嚷辅。

image.png

2.獲取一條數(shù)據(jù)

通過id簿姨,我們可以直接獲取某條數(shù)據(jù)的詳情,獲取數(shù)據(jù)。一般用get
/router/anime.js里扁位,加入一個get請求准潭。get請求的參數(shù),是在req.params里域仇。

//用 get請求
routerAnime.get('/detail/:id', async function(req, res, next){
  const {id} = req.params
  let temp = await mysql.get('anime', id)
  res.json(temp.data)  // 以json類型返回數(shù)據(jù)
})

寫完上面代碼后刑然,記得重啟服務(wù)器。

然后殉簸,在小程序端闰集,我們同樣再綁定個事件,getOneData

  ...
  getOneData(){
    wx.request({
      url: 'http://localhost:3000/anime/detail/' + 5,
      method: 'GET',
      success: (res) => {
        console.log('獲取一條數(shù)據(jù):', res.data)
      }
    })
  },
  ...

可以看到般卑,獲取id為5的數(shù)據(jù)返回成功

image.png

3.更新數(shù)據(jù)

同樣的道理武鲁,/routes/anime.js,添加如下蝠检。更新時沐鼠,也要知道更新的是哪條數(shù)據(jù),所以叹谁,id也不少饲梭。更新數(shù)據(jù),一般用put方法焰檩。如下:

routerAnime.put('/update/:id', async function(req, res, next){
  const {id} = req.params     //url后面跟的參數(shù)
  const {title} = req.body    //小程序請求里憔涉,data里的參數(shù)
  let temp = await mysql.update('anime', id, {
    title: title
  })
  res.json(temp.data.changedRows)
})

重啟后臺服務(wù)器;然后析苫,在小程序端兜叨,我們同樣再綁定個事件,updateOneData

  ...
updateOneData(){
  wx.request({
    url: 'http://localhost:3000/anime/update/' + 5,
    method: 'PUT',
    data: {
      title: '新標(biāo)題3'
    },
    success: (res) => {
      console.log('更新數(shù)據(jù):', res.data)
    }
  })
  ...

可以看到衩侥,成功更新的id為5的數(shù)據(jù)的title国旷。


image.png

4.查尋數(shù)據(jù)

/routes/anime.js,添加如下茫死。查尋一般用get方法跪但。
p0為單個查尋條件,參數(shù)數(shù)組峦萎,第一個為字段屡久,第二個為條件,第三個為內(nèi)容爱榔。r為執(zhí)行查尋的規(guī)則涂身。
假如我們要查尋type值等于1的數(shù)據(jù),那么就可以如下這么寫

routerAnime.get('/list/:page', async function(req, res, next){
  const {page} = req.params
  let temp = await mysql.find('anime', {
    p0: ['type', '=', 1],
    r: 'p0'
  })
  res.json(temp.data.objects)
})

重啟服務(wù)器搓蚪,然后在小程序端,新增事件getList

getList(){
  wx.request({
    url: 'http://localhost:3000/anime/list/' + 1,
    method: 'GET',
    success: (res) => {
      console.log('查尋結(jié)果:', res.data)
    }
  })
},
image.png

好了丁鹉,到這里妒潭,基本上悴能,你就可以開始寫自己的小程序了,還是很簡單吧雳灾,哈哈~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末漠酿,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子谎亩,更是在濱河造成了極大的恐慌炒嘲,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件匈庭,死亡現(xiàn)場離奇詭異夫凸,居然都是意外死亡,警方通過查閱死者的電腦和手機阱持,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進(jìn)店門夭拌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人衷咽,你說我怎么就攤上這事鸽扁。” “怎么了镶骗?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵桶现,是天一觀的道長。 經(jīng)常有香客問我鼎姊,道長骡和,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任此蜈,我火速辦了婚禮即横,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘裆赵。我一直安慰自己东囚,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布战授。 她就那樣靜靜地躺著页藻,像睡著了一般。 火紅的嫁衣襯著肌膚如雪植兰。 梳的紋絲不亂的頭發(fā)上份帐,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天,我揣著相機與錄音楣导,去河邊找鬼废境。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的噩凹。 我是一名探鬼主播巴元,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼驮宴!你這毒婦竟也來了逮刨?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤堵泽,失蹤者是張志新(化名)和其女友劉穎修己,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體迎罗,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡睬愤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了佳谦。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片戴涝。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖钻蔑,靈堂內(nèi)的尸體忽然破棺而出啥刻,到底是詐尸還是另有隱情,我是刑警寧澤咪笑,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布可帽,位于F島的核電站,受9級特大地震影響窗怒,放射性物質(zhì)發(fā)生泄漏映跟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一扬虚、第九天 我趴在偏房一處隱蔽的房頂上張望努隙。 院中可真熱鬧,春花似錦辜昵、人聲如沸荸镊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽躬存。三九已至,卻和暖如春舀锨,著一層夾襖步出監(jiān)牢的瞬間岭洲,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工坎匿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留盾剩,地道東北人雷激。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像彪腔,于是被迫代替她去往敵國和親侥锦。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容