博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Meteor+Vue 从入门到放弃
阅读量:7226 次
发布时间:2019-06-29

本文共 3660 字,大约阅读时间需要 12 分钟。

前一段时间忙完公司的项目开始闲下来,打算自己写个todolist什么的小应用,然后就跑去调研了一下nodejs环境下有那些比较好的框架写后端服务,本打算用 express + sequelize 写restful风格API的,可惜没找到更方便的工具快速制作,然后就遇到meteor。

meteor

meteor比起express还是使用restful规范的服务端来得更先进,用起来更舒服。

简单使用,只需要在服务端定义 发布 数据,在客户 订阅 的数据并能获得,当然这是归功于基于 DDP 协议的socket服务。

总结一下特点:

  1. 服务端与客户端编码风格一致(全TM是javascript)

  2. 极具实时性(数据基于websocket,模板可以动态加载)

  3. 集成了开源工具和框架(webpack、vue随意使用)

快速上手教程

教程坚持使用vue和webpack,所以这里有个问题,怎么才能跟meteor很好地结合一起呢?

答案:使用在meteor安装webpack支持! 

先学基础,不喜欢的跳过也可以。

快速开始

请git clone以下

运行只需

$ npm i$ meteor

下文要讲的是,那些东西事必须的,比如在package.json这段:

# 设置的客户端与服务端入口文件"main": "src/server.js","browser": "src/client.js",

webpack.config.js需要指定 root 和热更新设置 devServer

"root": "./src",  "devServer":{    "host": "localhost",    "hot": true,    "inline": true,  },

定义你的数据对象

# collections.jsexport const Tasks = new Mongo.Collection('tasks')export const Tags = new Mongo.Collection('tags')

发布

# publications.jsimport {Meteor} from 'meteor/meteor';import {Tasks} from './collections';Meteor.publish('tasks', function() {    return Tasks.find();});

提供数据操作

# methods.jsimport {Meteor} from 'meteor/meteor';import {Tasks, Tags} from './collections';Meteor.methods({    'tasks.complete': function(_id, complete){        Tasks.update({_id: _id}, {            $set: {                complete: complete,                updateAt: new Date()            }        })    },    'tasks.create': function(title){        check(title, String);        let _id = Tasks.insert({            title,            createAt: new Date()        })        return _id    },    'tasks.remove': function(_id){        check(_id, String);        Tasks.remove(_id);    }})

在客户端取得数据,和操作数据

# index.vue    import {Meteor} from 'meteor/meteor';    import {Tasks} from 'server/collections';    export default{        data(){            return{                tasks: [],                taskTitle: ""            }        },        methods: {            create(){                Meteor.call('tasks.create', this.taskTitle, function(err, _id){                    if(err){                        alert('出错了')                        console.error(err)                    } else {                        this.taskTitle = "";                    }                }.bind(this))            },            remove(task){                Meteor.call('tasks.remove', task._id)            }        },        route: {            activate: function(){                //订阅tasks数据                this.subscription = Meteor.subscribe('tasks');            },            data: function(transition){                Tracker.autorun(function () {
//取得数据 this.tasks = Tasks.find().fetch() }.bind(this)) }, deactivate: function(){ //取消订阅tasks数据 this.subscription.shop() } } }

使用docker部署meteor

使用  (目前还是免费试用)前需要添加docker配置。

具体配置看例子的 .docker 目录和 Dockerfile

逐步使用daocloud平台发布meteor应用

  1. 登录daocloud平台并创建一份代码构建,选择你的仓库(支持github、coding、私有gitlab等),其他默认,点击开始创建。

  2. 页面自动进入构建代码,等待一段时间后会显示构建成功。

  3. 点击镜像仓库并部署应用,逐步完成至见到 环境变量 设置,键入 ROOT_URL=http://localhost:80 、 PORT=80 、 MONGO_URL=Mongo服务地址 ,然后部署。

mongo访问地址,参考一下公式:

MONGO_URL = MONGODB_USERNAME:MONGODB_PASSWORD@MONGODB_PORT_27017_TCP_ADDR:27017/MONGODB_INSTANCE_NAME

自定义部署meteor

服务器包含: nodejs 、 git 、 mongodb

$ curl https://install.meteor.com/ | sh #安装meteor$ npm install -g demeteorizer #安装demeteorizer$ npm install #安装nodejs依赖的包$ meteor #先保证应用是可以执行运行的$ demeteorizer #打包(构建nodejs可用)代码$ cd .demeteorized/bundle/programs/server$ npm install$ cd ../../$ MONGO_URL=mongodb://localhost:27017/test PORT=80 ROOT_URL=http://localhost:80 node main.js

值得注意的是用了webpack:webpack的meteor应用部署环境nodejs版本必须0.12.x以上,npm版本必须3.x以上

转载地址:http://ucufm.baihongyu.com/

你可能感兴趣的文章
jQuery(一)
查看>>
前端存储 - localStorage
查看>>
express + mock 让前后台并行开发
查看>>
30天自制操作系统-2
查看>>
[LeetCode/LintCode] Largest Palindrome Product
查看>>
小程序开发之路(一)
查看>>
携程小程序初体验
查看>>
Odoo domain写法及运用
查看>>
JS进阶 - JS 、JS-Web-API与DOM、BOM
查看>>
JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
查看>>
猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
查看>>
面试题:给你个id,去拿到name,多叉树遍历
查看>>
go append函数以及写入
查看>>
关于Java中分层中遇到的一些问题
查看>>
配置 PM2 实现代码自动发布
查看>>
android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
查看>>
iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
查看>>
诡异!React stopPropagation失灵
查看>>
Python_OOP
查看>>
个人博客开发系列:评论功能之GitHub账号OAuth授权
查看>>