摘要:現在就能把整個項目起來。到現在我們沒有寫一行代碼,就實現了整個的后端功能。如果使用過程當中有任何問題,可以直接聯系我,也可以直接動手維護,我會第一時間回應大家,也歡迎大家對這種無后端模式提出寶貴的建議。
原材料
express
mongoose
seven-express
express-session
Start
使用npm安裝 express 和 腳手架
$ npm install -g --save express express-generator
初始化項目
默認是使用Jade模版,可以使用--view== 來指明其他的模版.
$ express seven-test $ cd seven-test $ npm install $ npm install mongoose seven-express express-sessionConfigure 進行 app.js 配置
默認的配置比較繁瑣,我們先來精簡一下配置文件,只留下我們需要的部分,如果還需要其他的中間件可以后面自行配置。
var express = require("express"); var path = require("path"); var cookieParser = require("cookie-parser"); var bodyParser = require("body-parser"); var app = express(); // view engine setup app.set("views", path.join(__dirname, "views")); app.set("view engine", "jade"); // uncomment after placing your favicon in /public //app.use(favicon(path.join(__dirname, "public", "favicon.ico"))); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(cookieParser()); app.use(express.static(path.join(__dirname, "public"))); module.exports = app;
下面我們來進行進一步的配置,將我們需要的中間件引入進來,并配置。
var express = require("express"); var path = require("path"); var cookieParser = require("cookie-parser"); var bodyParser = require("body-parser"); var session = require("express-session"); var mongoose = require("mongoose"); var seven = require("seven-express"); var router = express.Router(); var app = express(); // 連接數據庫 mongoose.connect("mongodb://localhost:27017/Test"); // view engine setup app.set("views", path.join(__dirname, "views")); app.set("view engine", "jade"); // uncomment after placing your favicon in /public //app.use(favicon(path.join(__dirname, "public", "favicon.ico"))); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(cookieParser()); app.use(express.static(path.join(__dirname, "public"))); // 添加session中間件 app.use(session({ secret: "12345", name: "seven-test", cookie: {maxAge: 80000 }, resave: false, saveUninitialized: true })); // 添加seven中間件 seven.creator(app, router, path.join(__dirname, "schema")); module.exports = app;添加 schema
在項目目錄下添加 schema 文件夾,然后在里面添加各種mongoose的schema文件。如果需要seven的權限管理功能,則默認需要添加 user 表,并添加 username , password , role 屬性。
const mongoose = require("mongoose"); let User = new mongoose.Schema({ // 用戶名 username: String, // 密碼 password: String, // 用戶身份 role: String, }); module.exports = User;添加 seven 的配置文件
自定義配置可以參照后面的seven中間件的介紹,這里給出樣例。
{ "rule": { "user" : { "Create": { "key": "username", "bodyList": ["username", "role"] }, "Update": { "bodyList": ["username"] } } }, "authority": { "role": ["admin", "user", "superadmin"], "filter": { "user": { "Create": false, "Retrieve": ["admin"], "Update": ["user", "admin", "superadmin"] } } } }Run
現在就能把整個項目run起來。
$ npm start
如果正常,會出現
users Pagination get /user/page/:page Create post /user Delete delete /user/:id Update put /user/:id Login post /login Retrieve get /user/:id
這些就是對于 schema 自動映射得到的 Restful API,具有可配置的參數檢查功能,具有可配置的權限管理功能。
到現在我們沒有寫一行代碼,就實現了整個 Restful API 的后端功能。
Seven-express那我們到底是如何做到這樣的自動化映射的呢?
好吧,主要是 seven-express 實現的從 Mongoose.schema 到 Restful API 的映射,并添加了其他的成熟功能模塊,這也是我最近在拼命開發的一個中間件(或者說是插件),現在已經開源在github上,并發布在npm中。
現在有比較詳細的中文文檔,項目地址: seven
因為我現在學業比較重,所以開發速度不會特別快,但是我也會盡全力去維護這個開源項目,歡迎大家star使用。如果使用過程當中有任何問題,可以直接聯系我,也可以直接動手維護,我會第一時間回應大家,也歡迎大家對這種無后端模式提出寶貴的建議。
郵箱: 610347922@qq.com
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/82653.html
摘要:指南無論你正在構建什么,這些指南都旨在讓你盡快提高工作效率使用團隊推薦的最新項目版本和技術。使用進行消息傳遞了解如何將用作消息代理。安全架構的主題指南,這些位如何組合以及它們如何與交互。使用的主題指南以及如何為應用程序創建容器鏡像。 Spring 指南 無論你正在構建什么,這些指南都旨在讓你盡快提高工作效率 — 使用Spring團隊推薦的最新Spring項目版本和技術。 入門指南 這些...
摘要:閱讀過程中如果產生任何不適,請及時撥打自行搶救,謝謝。端選型總體還是比較前后端分離的,不強制你使用某一種方案。是官方出品和推薦的,也是默認的配套方案。事后來看,的坑不少。 apollo-client 是一個比較難用的 GraphQL 客戶端,本系列帶你集成 redux,趟平深坑,鉆入原理,讓你在 21 分鐘內學完 apollo-client。 NOTE: 閱讀過程中如果產生任何不適,請...
摘要:在結構上引入了頭結點和尾節點,他們分別指向隊列的頭和尾,嘗試獲取鎖入隊服務教程在它提出十多年后的今天,已經成為最重要的應用技術之一。隨著編程經驗的日積月累,越來越感覺到了解虛擬機相關要領的重要性。 JVM 源碼分析之 Jstat 工具原理完全解讀 http://click.aliyun.com/m/8315/ JVM 源碼分析之 Jstat 工具原理完全解讀 http:...
摘要:異步最佳實踐避免回調地獄前端掘金本文涵蓋了處理異步操作的一些工具和技術和異步函數。 Nodejs 連接各種數據庫集合例子 - 后端 - 掘金Cassandra Module: cassandra-driver Installation ... 編寫 Node.js Rest API 的 10 個最佳實踐 - 前端 - 掘金全文共 6953 字,讀完需 8 分鐘,速讀需 2 分鐘。翻譯自...
摘要:菜鳥教程框架中文手冊入門目標使用搭建通過對數據增刪查改沒了純粹占行用的拜 后端API入門學習指北 了解一下一下概念. RESTful API標準] 所有的API都遵循[RESTful API標準]. 建議大家都簡單了解一下HTTP協議和RESTful API相關資料. 阮一峰:理解RESTful架構 阮一峰:RESTful API 設計指南 RESTful API指南 依賴注入 D...
閱讀 2518·2021-09-24 10:29
閱讀 3799·2021-09-22 15:46
閱讀 2571·2021-09-04 16:41
閱讀 2977·2019-08-30 15:53
閱讀 1258·2019-08-30 14:24
閱讀 3052·2019-08-30 13:19
閱讀 2170·2019-08-29 14:17
閱讀 3520·2019-08-29 12:55