zoukankan      html  css  js  c++  java
  • Vue+koa2开发一款全栈小程序(5.服务端环境搭建和项目初始化)

    1.微信公众平台小程序关联腾讯云

    腾讯云的开发环境是给免费的一个后台,但是只能够用于开发,如果用于生产是需要花钱的,我们先用开发环境吧

    1.用小程序开发邮箱账号登录微信公众平台

    2.【设置】→【开发者工具】→第一次是git管理,开启腾讯云关联

    3.会一路跳转到腾讯云的【开通开发环境】的流程要走

    1.已经完成

    2.下载安装微信开发者工具,也已经下载安装了

    3.下载Node.js版本Demo

    将demo中的server文件夹,复制到mpvue项目中

    在项目下的project.config.json中,增加代码:

    "qcloudRoot":"/server/",

     在server文件夹下的config.js中,在pass后填写Appid

     然后在微信开发者工具中,打开项目,点击右上角的【腾讯云】→【上传测试代码】

    首次上传选【模块上传】,然后如图把相应的地方勾选,以后就选智能上传就可以了。

     2.搭建本地环境

    1.安装MySQL数据库

    2.配置本地server文件夹下的config.js,加入配置代码

        serverHost: 'localhost',
        tunnelServerUrl: '',
        tunnelSignatureKey: '27fb7d1c161b7ca52d73cce0f1d833f9f5b5ec89',
          // 腾讯云相关配置可以查看云 API 秘钥控制台:https://console.cloud.tencent.com/capi
        qcloudAppId: '你的appid',
        qcloudSecretId: '你的云api秘钥id',
        qcloudSecretKey: '你的云api秘钥key',
        wxMessageToken: 'weixinmsgtoken',
        networkTimeout: 30000,

    获取云api秘钥id和key地址:https://console.cloud.tencent.com/capi
    获取appid的地址:https://console.cloud.tencent.com/developer

     3.新建cAuth数据库

    打开MySQL控制台,执行命令

    create database cAuth;

     数据库名cAuth,是与server项目中保持一致。

    如果本地的MySQL设置了密码,将server文件下的config.js中的数据库密码配置,填写你mysql数据库的密码

    4.启动server服务端

    打开cmd,cd到server项目目录下,执行

    cnpm install
    cnpm install -g nodemon

    5.测试一下本地环境是否搭建好了

    在server项目下controllers目录下,新建demo.js文件

    module.exports=async(ctx)=>{
        ctx.state.data={
            msg:'hello 小程序后台'
        }
    }

    在server项目目录下的router目录下的index.js中添加路由

    router.get('/demo',controllers.demo)

     然后执行运行server项目的命令

    npm run dev //启动server项目

    浏览器访问

    http://localhost:5757/weapp/demo

    .

     

    3.项目初始化

    1.新建mpvue项目 打开cmd,cd到想要存放项目的目录下

    cnpm install -g vue-cli   //安装脚手架
    vue init mpvue/mpvue-quickstart mydemo
    Project name mydemo
    wxmp appid //登录微信小程序后台,找到appid
    //然后全都默认即可
    
    cd mydemo
    cnpm install
    npm run dev//启动新建的mpvue项目

    2.用vscode打开mydemo项目

    1.将图片素材库文件夹img复制到mydemo/static目录下

    2.在src目录下,新建me目录,目录下新建mian.js和index.vue

    main.js代码

    import Vue from 'vue'
    import App from './index'
    
    const app = new Vue(App)
    app.$mount()

    index.vue

    <template>
        <div>
            个人中心页面
        </div>
    </template>
    <script>
    export default {
        
    
    }
    </script>
    <style>
        
    </style>

    3.在src目录下,新建books目录,目录下新建mian.js和index.vue

    main.js代码

    import Vue from 'vue'
    import App from './index'
    
    const app = new Vue(App)
    app.$mount()

    index.vue代码

    <template>
        <div>
            图书页面
        </div>
    </template>
    <script>
    export default {
        
    
    }
    </script>
    <style>
        
    </style>

    4.在src目录下,新建comments目录,目录下新建mian.js和index.vue

    main.js代码

    import Vue from 'vue'
    import App from './index'
    
    const app = new Vue(App)
    app.$mount()

    index.vue代码

    <template>
        <div>
            评论过的书页面
        </div>
    </template>
    <script>
    export default {
        
    
    }
    </script>
    <style>
        
    </style>

    嗯,是的,3,4,5步骤中,main.js 的代码是一样的,index.vue代码基本一样

    5.防止代码格式报错导致项目无法启动,先到项目目录下的build目录下的webpack.base.conf.js中,将一段配置代码注释掉

    6.在mydemo项目下的app.json中修改添加配置代码

    app.json代码

    {
      "pages": [
        "pages/books/main", //将哪个页面路径放第一个,哪个页面就是首页,加^根本不好使,而且还报错
        "pages/comments/main",
        "pages/me/main",
        "pages/index/main",
        "pages/logs/main",
        "pages/counter/main"
      ],
      "window": {
        "backgroundTextStyle": "light",
        "navigationBarBackgroundColor": "#EA5149",
        "navigationBarTitleText": "蜗牛图书",
        "navigationBarTextStyle": "light"
      }
    
      
    }

    7.在cmd中重启mydemo项目,在微信开发者工具中打开

     3.底部导航

    1.微信公众平台小程序全局配置文档地址

    https://developers.weixin.qq.com/miniprogram/dev/framework/config.html#全局配置

    2.根据官方文档,在app.json填写底部导航配置代码

    {
      "pages": [
        "pages/books/main",
        "pages/comments/main",
        "pages/me/main",
        "pages/index/main",
        "pages/logs/main",
        "pages/counter/main"
      ],
      "window": {
        "backgroundTextStyle": "light",
        "navigationBarBackgroundColor": "#EA5149",
        "navigationBarTitleText": "蜗牛图书",
        "navigationBarTextStyle": "light"
      },
      "tabBar": {
        "selectedColor":"#EA5149",
        "list": [{
    
          "pagePath": "pages/books/main",
          "text": "图书",
          "iconPath":"static/img/book.png",
          "selectedIconPath":"static/img/book-active.png"
        },
        {
    
          "pagePath": "pages/comments/main",
          "text": "评论",
          "iconPath":"static/img/todo.png",
          "selectedIconPath":"static/img/todo-active.png"
        },
        {
    
          "pagePath": "pages/me/main",
          "text": "我",
          "iconPath":"static/img/me.png",
          "selectedIconPath":"static/img/me-active.png"
        }
      ]
      }
    
      
    }

    3.效果图

     4.代码封装

     1.打开cmd,cd到server下,运行后端

    npm run dev

    2.在mydemo/src 目录下,新建config.js

    //配置项
    
    const host="http://localhost:5757"
    
    const config={
        host
    }
    export default config

    3.在src目录下新建until.js

    //工具函数
    
    import config from './config'
    
    export function get(url){
        return new Promise((reslove,reject)=>{
            wx.request({
                url:config.host+url,
                success:function(res){
                    if(res.data.code===0){
                        reslove(res.data.data)
                    }else{
                        reject(res.data)
                    }
                }
            })
        })
    }

    4.App.vue中添加代码

    <script>
    import {get} from './until'
    
    export default {
      async created () {
        // 调用API从本地缓存中获取数据
        const logs = wx.getStorageSync('logs') || []
        logs.unshift(Date.now())
        wx.setStorageSync('logs', logs)
    
        const res=await get('/weapp/demo')
        console.log(123,res)
        console.log('小程序启动了')
      }
    }
    </script>
    
    <style>
    .container {
      height: 100%;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: space-between;
      padding: 200rpx 0;
      box-sizing: border-box;
    }
    /* this rule will be remove */
    * {
      transition: width 2s;
      -moz-transition: width 2s;
      -webkit-transition: width 2s;
      -o-transition: width 2s;
    }
    </style>

    5.在微信开发者工具中,在右上角点击【详情】,勾选不校验合法域名

    6.运行mydemo

    npm run dev

     5.使用ESLint自动规范代码

    1.将mydemo/build/webpck.base.conf.js中之前注释的代码恢复

    2.在mydemo项目下的package.json中的“lint”配置中加入--fix

    3.执行代码,规范代码

    npm run lint//如果一般的格式错误,就会自动修改,如果有代码上的错误,则会报出位置错误

    4.执行运行代码

    npm run dev

    发现已经不报错啦!

  • 相关阅读:
    【HDOJ】2774 Shuffle
    【POJ】2170 Lattice Animals
    【POJ】1084 Square Destroyer
    【POJ】3523 The Morning after Halloween
    【POJ】3134 Power Calculus
    【Latex】如何在Latex中插入伪代码 —— clrscode3e
    【HDOJ】4801 Pocket Cube 的几种解法和优化
    【HDOJ】4080 Stammering Aliens
    【HDOJ】1800 Flying to the Mars
    SQL语法
  • 原文地址:https://www.cnblogs.com/xuepangzi/p/9744031.html
Copyright © 2011-2022 走看看