第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

有沒有編寫簡(jiǎn)單的 Strapi 插件的例子,可以 CRUD 到數(shù)據(jù)庫?

有沒有編寫簡(jiǎn)單的 Strapi 插件的例子,可以 CRUD 到數(shù)據(jù)庫?

神不在的星期二 2022-09-29 17:55:49
背景我決定將 Strapi 部署為我的項(xiàng)目的無頭 CMS/后端,并且對(duì)開箱即用的輕松設(shè)置非常滿意。但是,我的項(xiàng)目的一部分需要通過簡(jiǎn)單的表單捕獲用戶輸入,我認(rèn)為通過編寫自定義插件和利用相同的后端來擴(kuò)展Stati的REST API是可行的方法,而不是使用自己的數(shù)據(jù)庫啟動(dòng)另一個(gè)快速服務(wù)器。我能夠找到有關(guān)生成插件的文檔,并且我對(duì)不同插件文件的文件結(jié)構(gòu)和邏輯(模型,控制器,策略,配置,路由等)的工作原理有很好的理解。但是,對(duì)于我的生活,我無法找到最基本的資源或任何關(guān)于如何編寫邏輯的足夠文檔,允許我的控制器掛接到Steati為我的自定義集合創(chuàng)建的基本CRUD方法(在我的情況下是“消息”)。到目前為止,我做了什么生成插件表帶生成:插件通訊錄在插件\聯(lián)系人表單\config\routes.json.創(chuàng)建了一個(gè)路由,在允許從“管理”面板進(jìn)行公共訪問后,我已成功對(duì)其進(jìn)行了測(cè)試/postMessage   {   "routes":        [        {         "method": "POST",         "path": "/postMessage",         "handler": "contact-form.postMessage"        }       ]     }在插件\接觸形式\模型中。我創(chuàng)建了一個(gè)空的模型文件&包含我的模型“消息”的定義,它定義了一個(gè)colationType集合名稱“消息”及其字段,如下所示:Message.jsMessage.settings.json     {     "kind": "collectionType",     "connection": "default",     "info": {       "name": "message",       "description": "This represents the Message Model"      },     "attributes": {       "name": {         "default": "",         "type": "string",         "required": true        },       "email": {         "default": "",         "type": "email",         "required": true        },       "message": {         "default": "",         "type": "text",         "required": true        }     }    }在開發(fā)服務(wù)器重新啟動(dòng)后,Strapi已經(jīng)識(shí)別出我的插件,并在其數(shù)據(jù)庫中反映了“消息”模型,我可以從管理面板中正確看到該集合。我需要什么幫助我想做的是擴(kuò)展插件的REST API端點(diǎn),以提供與 Strapi 在創(chuàng)建新集合/實(shí)體時(shí)構(gòu)建的開箱即用端點(diǎn)相同的功能,同時(shí)為其添加自定義業(yè)務(wù)邏輯層。我很感激任何人向我指出一個(gè)示例或資源,該示例或資源顯示了Stati向插件公開的方法或函數(shù),這些插件可以掛鉤或調(diào)用以實(shí)現(xiàn)此目的。
查看完整描述

1 回答

?
開心每一天1111

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊

上述可以通過利用內(nèi)置的 Strapi 暴露的方法來實(shí)現(xiàn)。通過檢查堆棧如何通過自動(dòng)生成 API 端點(diǎn)處理創(chuàng)建操作,我能夠?qū)?確定 為此功能的相應(yīng)模塊。但是,在將插件的模型名稱傳遞給 時(shí),服務(wù)無法找到 。因此,我檢查了服務(wù)的源代碼,發(fā)現(xiàn)它接受模型 UID。因此,在自定義插件的情況下,我們需要傳遞格式化為這樣的插件,而不是僅僅傳遞:entityServiceentityServicestrapi.entityService.create({data} , {model: 'modelName')modelNamemodelNamemodelUID

plugins::plugin-name.modelName

總之,對(duì)于針對(duì)我的問題中的示例的創(chuàng)建操作,它將是這樣的:

const result = await strapi.entityService.create(
  { data: ctx.request.body },
  { model: "plugins::contact-form.message" }
)

Strapi支持的所有其他CRUD操作也由實(shí)體服務(wù)公開,并且可以以類似的方式訪問(創(chuàng)建,更新,查找,查找等)。您可以在 Strapi 文檔>概念>控制器>核心控制器中找到所有這些方法。

我還制作了一個(gè)YouTube視頻,介紹了它是如何工作的:https://www.youtube.com/watch?v=kIZHzbmnhnU


查看完整回答
反對(duì) 回復(fù) 2022-09-29
  • 1 回答
  • 0 關(guān)注
  • 148 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)