欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

Egg.js+MongoDB+uni-app 開發(fā)小程序 (一) 項(xiàng)目后臺基搭建 - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開發(fā)/軟件開發(fā)

知識

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們在追求其視覺表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營銷的便利,運(yùn)營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏壧峁┍憬莸闹С郑?

您當(dāng)前位置>首頁 » 新聞資訊 » 小程序相關(guān) >

Egg.js+MongoDB+uni-app 開發(fā)小程序 (一) 項(xiàng)目后臺基搭建

發(fā)表時(shí)間:2021-1-5

發(fā)布人:葵宇科技

瀏覽次數(shù):165

Express 是 Node.js 社區(qū)廣泛使用的框架,簡單且擴(kuò)展性強(qiáng),非常適合做個(gè)人項(xiàng)目。但框架本身缺少約定,標(biāo)準(zhǔn)的 MVC 模型會(huì)有各種千奇百怪的寫法。Egg 按照約定進(jìn)行開發(fā),奉行『約定優(yōu)于配置』,團(tuán)隊(duì)協(xié)作成本低。

Sails 是和 Egg 一樣奉行『約定優(yōu)于配置』的框架,擴(kuò)展性也非常好。但是相比 Egg,Sails 支持 Blueprint REST API、WaterLine 這樣可擴(kuò)展的 ORM、前端集成、WebSocket 等,但這些功能都是由 Sails 提供的。而 Egg 不直接提供功能,只是集成各種功能插件,比如實(shí)現(xiàn) egg-blueprint,egg-waterline 等這樣的插件,再使用 sails-egg 框架整合這些插件就可以替代 Sails 了。

Egg的特性

  • 提供基于 Egg 定制上層框架的能力

  • 高度可擴(kuò)展的插件機(jī)制

  • 內(nèi)置多進(jìn)程管理

  • 基于Koa開發(fā),性能優(yōu)異

  • 框架穩(wěn)定,測試覆蓋率高

  • 漸進(jìn)式開發(fā)

MongoDB(4.2)

MongoDB是一個(gè)基于分布式文件存儲(chǔ) [1] 的數(shù)據(jù)庫。由C++語言編寫。旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案。MongoDB是一個(gè)介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的。它支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類似json的bson格式,因此可以存儲(chǔ)比較復(fù)雜的數(shù)據(jù)類型。Mongo最大的特點(diǎn)是它支持的查詢語言非常強(qiáng)大,其語法有點(diǎn)類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實(shí)現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對數(shù)據(jù)建立索引

它的特點(diǎn)是高性能、易部署、易使用,存儲(chǔ)數(shù)據(jù)非常方便。主要功能特性有:

  • 面向集合存儲(chǔ),易存儲(chǔ)對象類型的數(shù)據(jù)。

  • mongodb集群參考

  • 模式自由。

  • 支持動(dòng)態(tài)查詢。

  • 支持完全索引,包含內(nèi)部對象。

  • 支持查詢。

  • 支持復(fù)制和故障恢復(fù)。

  • 使用高效的二進(jìn)制數(shù)據(jù)存儲(chǔ),包括大型對象(如視頻等)。

  • 自動(dòng)處理碎片,以支持云計(jì)算層次的擴(kuò)展性。

  • 支持 Golang,RUBY,PYTHON,JAVA,C++,PHP,C#, NODE等多種語言。

  • 文件存儲(chǔ)格式為BSON(一種JSON的擴(kuò)展)。

  • 可通過網(wǎng)絡(luò)訪問。

Mongoose

Node.js 的MongoDB ORM

uni-app

uni-app 是一個(gè)使用 Vue.js 開發(fā)所有前端應(yīng)用的框架,開發(fā)者編寫一套代碼,可發(fā)布到iOS、Android、Web(響應(yīng)式)、以及各種小程序(微信/支付寶/百度/頭條/QQ/釘釘/淘寶)、快應(yīng)用等多個(gè)平臺。

DCloud公司擁有600萬開發(fā)者用戶,幾十萬應(yīng)用案例、12億手機(jī)端月活用戶,數(shù)千款uni-app插件、70+微信/qq群。阿里小程序工具官方內(nèi)置uni-app(詳見),騰訊課堂官方為uni-app錄制培訓(xùn)課程(詳見),開發(fā)者可以放心選擇。

uni-app在手,做啥都不愁。即使不跨端,uni-app也是更好的小程序開發(fā)框架(詳見)、更好的App跨平臺框架、更方便的H5開發(fā)框架。不管領(lǐng)導(dǎo)安排什么樣的項(xiàng)目,你都可以快速交付,不需要轉(zhuǎn)換開發(fā)思維、不需要更改開發(fā)習(xí)慣。

tree new bee

環(huán)境需求

Nodejs 建議選擇 LTS 版本,最低要求 8.x
MongoDB 建議使用4.2版本
Redis 最新版本

安裝及配置

nodejs 的安裝請查看對應(yīng)的官方文檔

Egg 安裝

$ mkdir egg-example && cd egg-example
$ npm init egg --type=simple
$ npm i
    ```
```JavaScript
$ npm run dev
$ open http://localhost:7001

MongoDB

提供linux RedHat(CentOS)安裝示例:

CentOS 去掉sudo

創(chuàng)建 /etc/yum.repos.d/mongodb-org-4.2.repo

文件內(nèi)容為:

[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc

安裝基礎(chǔ)

sudo yum install -y mongodb-org

安裝控制

sudo yum install -y mongodb-org-4.2.10 mongodb-org-server-4.2.10 mongodb-org-shell-4.2.10 mongodb-org-mongos-4.2.10 mongodb-org-tools-4.2.10

啟動(dòng)

sudo systemctl start mongod

安裝項(xiàng)目所需插件

1.egg-jwt 標(biāo)準(zhǔn)TOKEN生成校驗(yàn)
2.egg-mongoose MongoDB Nodejs ORM
3.egg-cors插件 跨域插件
4.egg-validate 數(shù)據(jù)校驗(yàn)插件
4.lodash JS函數(shù)庫
5.momentjs JS時(shí)間處理函數(shù)庫
6.request http處理包(貌似已棄用)
7.request-promise-native request promise化包(也可用nodejs自帶)
8.stream-to-array,stream-wormhole egg上傳內(nèi)存銷毀相關(guān)包

附package.json

  "devDependencies": {
    "autod": "^3.0.1",
    "autod-egg": "^1.1.0",
    "await-stream-ready": "^1.0.1",
    "egg-bin": "^4.11.0",
    "egg-ci": "^1.11.0",
    "egg-cors": "^2.2.3",
    "egg-jwt": "^3.1.7",
    "egg-mock": "^3.21.0",
    "egg-mongoose": "^3.3.0",
    "egg-validate": "^2.0.2",
    "eslint": "^5.13.0",
    "eslint-config-egg": "^7.1.0",
    "lodash": "^4.17.20",
    "moment": "^2.28.0",
    "request": "^2.88.2",
    "request-promise-native": "^1.0.9",
    "stream-to-array": "^2.3.0",
    "stream-wormhole": "^1.1.0"
  },

egg 插件配置文件 /config/plugin.js

'use strict';

/** @type Egg.EggPlugin */
exports.validate = {
    enable: true,
    package: 'egg-validate',
};
exports.mongoose = {
    enable: true,
    package: 'egg-mongoose',
};
exports.jwt = {
    enable: true,
    package: "egg-jwt"
};
exports.cors = {
    enable: true,
    package: 'egg-cors',
};

exports.redis = {
    enable: true,
    package: 'egg-redis',
};

egg 配置文件 /config/

/* eslint valid-jsdoc: "off" */

'use strict';

/**
 * @param {Egg.EggAppInfo} appInfo app info
 */
module.exports = appInfo => {
    /**
     * built-in config
     * @type {Egg.EggAppConfig}
     **/
    const config = exports = {};

    // use for cookie sign key, should change to your own and keep security
    config.keys = appInfo.name + '_1600096669632_8743';

    config.middleware = ['fm', 'errorHandler', 'responseFormatter', 'jwtErrorHandler'];
    // csrf 設(shè)置
    config.security = {
        csrf: {
            enable: false,
            ignoreJSON: true
        },
        domainWhiteList: ['http://localhost', 'http://127.0.0.1', '*']
    };
    // 跨域
    config.cors = {
        origin: '*',
        allowMethods: 'GET,HEAD,PUT,POST,DELETE,PATCH,OPTIONS',
        credentials: true,
    };
    // 小程序配置
    config.wxmpCf = {
        appid: '您的小程序APPID',
        secret: '您的小程序密鑰'
    };
    // 項(xiàng)目可能回連接多個(gè)/多種數(shù)據(jù)庫 這里我們默認(rèn)只使用mp的MongoDB數(shù)據(jù)庫
    config.mongoose = {
        clients: {
            basic: {
                url: 'mongodb://127.0.0.1:27017/您的數(shù)據(jù)庫名稱',
                options: {},
            },
            mp: {
                url: 'mongodb://127.0.0.1:27017/您的數(shù)據(jù)庫名稱2',
                options: {},
            }
        },
    };
    // 代理獲取真實(shí)IP
    config.proxy = true;
    // 地圖接口設(shè)置
    config.wmap = {
        amap: { key: '高德地圖key' },
        txmap: { key: '騰訊地圖key' }
    };
    // add your user config here
    const userConfig = {
        // myAppName: 'egg',
    };
    return {
        ...config,
        ...userConfig,
    };
};

項(xiàng)目目錄結(jié)構(gòu)

  • app 項(xiàng)目主目錄
    • controller 控制目錄
    • extend 擴(kuò)展
    • libs 第三方代碼
    • middlewear 中間件
    • model 數(shù)據(jù)庫模型
    • public 靜態(tài)文件
    • router 路由(路由太多的情況使用)
    • rules 數(shù)據(jù)校驗(yàn)文件
    • schedule 定時(shí)任務(wù)
    • service 服務(wù)
    • view 頁面模板
      router.js 路由文件
  • config
    • config.default.js 項(xiàng)目配置文件
    • plugin egg插件
      app.js
      agent.js
    文章轉(zhuǎn)載自:語言中文網(wǎng)

相關(guān)案例查看更多