Meteor:路由(1)

Meteor自身并没有好的路由运用划定规矩,还好有比较好用的第三方Package运用。Iron.Router就是一个比较好的Meteor的路由框架,供应了Client 和 Server的路由设置,还可以用来开辟restful作风的api。

装置Iron.Router

直接cd到项目目次运用装置敕令:

meteor add iron:router

Changes to your project's package version selections:

iron:controller        added, version 1.0.12
iron:core              added, version 1.0.11
iron:dynamic-template  added, version 1.0.12
iron:layout            added, version 1.0.12
iron:location          added, version 1.0.11
iron:middleware-stack  added, version 1.0.11
iron:router            added, version 1.0.12
iron:url               added, version 1.0.11


iron:router: Routing specifically designed for Meteor

可以看到装置的细致内容。
可以运用敕令直接更新Iron.Router

meteor update iron:router

运用Iron.Router

我们晓得运用meteor create meteor-project的敕令建立的项目会默许天生三个文件.meteor-project.html,meteor-project.css,meteor-project.js装置Iron.Router以后,运转项目会发明,页面展现毛病提示内容:

Organize your Meteor application.
Router.route('/', function () {
  this.render('Home', {
    data: function () { return Items.findOne({_id: this.params._id}); }
  });
});
        

我们默许天生的文件运转以后和Iron.Router划定规矩有争执,这个提示的意义是我们还没有设置一个”/”的路由划定规矩,我们须要设置路由划定规矩,然则首先要先将meteor默许天生的文件删除。

运用Iron.Router

增添head.html

Iron.router须要设置一个head.html

<head>
    <meta charset="UTF-8">
    <title>Iron-router</title>
</head>

检察网页源代码可以看到head内里多了个title:
《Meteor:路由(1)》

设置”/”页面

新建一个home.html页面

<template name="home">
    <h1>I am home</h1>
</template>

router.js

新建一个router.js文件。增添一个路由划定规矩:

Router.route('/', function () {
    this.render('home');
});

这段代码的意义是在主目次(’/’)下,我们指定接见名字为home的template。
如今页面就可以一般的如今home.html的内容了。

简化写法

新建一个content.html。

<template name="content">
    <h2>I am content</h2>
</template>

增添一条路由划定规矩:

Router.route('/content');

这个划定规矩的会自动的指定名字叫做content的template或许页面,如许简朴的写法,让你不必再完成背面function的内容,简化了代码,商定大于设置

REST

大多数据的网站都须要支撑REST作风的API,Iron.Router不单单议可以对Meteor的内容做路由,还能增添REST作风的Api。
增添一条router划定规矩:

Router.route('/content/:_id', function () {
    var req = this.request;
    var res = this.response;
    res.end('this is string');
}, {where: 'server'});

where:'server'用来通知Rotuer这个是服务器端的路由划定规矩.
运用curl看下效果:

curl ‘http://localhost:3000/content/1′

返回的效果为:

this is string

并没有返回html和js文件。

项目地点:https://github.com/jjz/meteor/tree/master/meteor-router

    原文作者:姜家志
    原文地址: https://segmentfault.com/a/1190000004414991
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞