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

    发现已经不报错啦!

  • 相关阅读:
    使用C#实现计划任务(corn job)
    python 修改xml文件
    redis安装
    Nginx的安装
    nginx配置
    用泛型减少重复代码,使代码更合理、更优雅
    Tomcat server.xml配置详解
    二维码生成
    轻量级的中文分词工具包
    HTML解析利器
  • 原文地址:https://www.cnblogs.com/xuepangzi/p/9744031.html
Copyright © 2011-2022 走看看