2017-03-20 2 views
2

EDITEd: Hallo Leute, mein Code war richtig. Ich musste $ locationProvider verwenden, um ein '#' aus der URL zu löschen. Das war das Problem;)Express-und Winkel-Routing

Ich lerne den MEAN Stack und mache eine einfache Auktions-App. Ich habe ein Problem zu verstehen, wie Express und Winkelrouting zusammenarbeiten.

Mein Knotenserver, diese Datei dient, app.js

var express = require('express'); 
    var path = require('path'); 
    var favicon = require('serve-favicon'); 
    var logger = require('morgan'); 
    var cookieParser = require('cookie-parser'); 
    var bodyParser = require('body-parser'); 
    var routes = require('./routes'); 

    var mongoose = require('mongoose'); 

    var app = express(); 

    mongoose.connect('localhost:27017/auction'); 

    // view engine setup 
    app.set('views', path.join(__dirname, '/views')); 
    app.set('view engine', 'jade'); 

    app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); 
    app.use(logger('dev')); 
    app.use(bodyParser.json()); 
    app.use(bodyParser.urlencoded({ extended: false })); 
    app.use(cookieParser()); 
    app.use(express.static(path.join(__dirname, 'public'))); 

    app.get('/partials/:filename', routes.partials); 

    app.use(routes.index); 

ich ein normales index.jade haben und eine Winkel App auction.js, in dem ich die Winkel Routing tun genannt, etwa wie folgt:

var app = angular.module('auction', [ 'ngRoute','HomeCtrl','NewAuctionCtrl', 'FollowingAuctionsCtrl','MyAuctionsCtrl']); 


    app.config(function ($routeProvider){ 

    $routeProvider 
     .when('/myauctions', { 
      templateUrl: 'partials/myauctions.jade', 
      controller: 'MyAuctionsController' 
     }) 
     .when('/followingauctions', { 
      templateUrl: 'partials/followingauctions.jade', 
      controller: 'FollowingAuctionsController' 
     }) 
     .when('/users', { 
      templateUrl: 'partials/users.jade', 
      controller: 'UsersController' 
     }) 
     .when('/newauction', { 
      templateUrl: 'partials/newauction.jade', 
      controller: 'NewAuctionController' 
     }) 
     .otherwise({redirectTo:'/'}); 

});

Ich habe keine Konsolenfehler, der Server lädt index.jade, aber wenn ich in meiner Navbar navigiere, passiert nichts, was ich in den anderen Jade-Dateien oder mit den Controllern mache. Dies ist die Struktur der App:

-bin(server) 
    -models(for mongoose) 
    -public 
     -images 
     -javascripts 
      -auction.js 
      -controllers 
      -services 
     -stylesheets 
    -routes 
     -index.js 
    -views 
     -partials 
     -the other jade files 
     -index.jade 
    -app.js 

Und das ist die index.jade Datei (nur das navbar Teil)

#auction-navbar 
    nav.navbar.navbar-default 
    .container-fluid 
     // Brand and toggle get grouped for better mobile display 
     .navbar-header 
     button.navbar-toggle.collapsed(type='button', data-toggle='collapse', data-target='#bs-example-navbar-collapse-1', aria-expanded='false') 
      span.sr-only Toggle navigation 
      span.icon-bar 
      span.icon-bar 
      span.icon-bar 
     // Collect the nav links, forms, and other content for toggling 
     #bs-example-navbar-collapse-1.collapse.navbar-collapse 
     ul.nav.navbar-nav 
      li 
      a(href='/') 
       | Dashboard 
      li 
      a(href='/myauctions') 
       | My auctions 
      li 
      a(href='/followingauctions') 
       | Following Auctions 
      li 
      a.btn.btn-primary(href='/newauction') 
       | New Auction 



    #content(ng-view) 

Dies ist die index.js

 exports.index = function(req, res){ 
     res.render('index'); 
    }; 

    exports.partials = function (req, res) { 
     var filename= req.params.filename; 
     if(!filename) return; 
     res.render('partials/' + filename); 
    }; 

Antwort