Im developing a basic meteorjs app and using the iron router for client-side-only routing. I set up my routes, publications and schemas but i cant get the iron router to run. It allways shows me "No route definitions found" after i start my app. My router.js is in /lib. Changing its location didnt work at all. I dont have any console logs. Any help is appreciated.
My router.js:
Router.route('/', {
name: 'main',
layoutTemplate: 'mainLay',
waitOn: function() {
return Meteor.subscribe('posts');
},
action: function() {
this.render('allPosts');
}
});
Router.route('/create-post', {
name: 'createPost',
layoutTemplate: 'mainLay',
action: function() {
if (Meteor.userId()) {
this.render('createPost');
}
else {
Router.go('/');
}
}
});
Router.route('/post/:postId', {
name: 'post',
layoutTemplate: 'mainLay',
waitOn: function() {
return [
Meteor.subscribe('comments', this.params.postId),
Meteor.subscribe('post', this.params.postId)
];
},
action: function() {
var postId = this.params.postId;
this.render('postDetail');
}
});
and in my .meteor/packages i have the entry:
iron:router
If you not clear about the app structure, that could help: https://guide.meteor.com/structure.html#example-app-structure
That the template can´t be found for the iron-router:
The router.js is not known by the client entrypoint: /client/main.js
client/
main.js # client entry point, imports all client code
in your current case:
inside the main.js check if you add:
import '/lib/router.js';