2015-12-22 145 views
1

我有節點上的服務器和角上的客戶端...角節點路由

角度路線:

var todoApp = angular.module('todoApp', ['ngResource', 'ngRoute', 'ngCookies']) 
    .config(function ($routeProvider, $locationProvider) { 
     $routeProvider.when('/', { 
      templateUrl: 'templates/index.html' 

     }); 
     $routeProvider.when('/todo', 
      { 
       templateUrl: 'templates/todo.html', 
       controller:"TodoController" 

      }); 
     $routeProvider.when('/admin', 
      { 
       templateUrl: 'templates/admin.html' 

      }); 

     $routeProvider.otherwise({redirectTo: '/'}); 
     $locationProvider.html5Mode(true); 

    }); 

在服務器端我已經定義了一個路線「/ TODO」

app.use('/todo', todo); 

和我的待辦事項文件是

var express = require('express'), 
router = express.Router(), 
todo = require('../controllers/todo'), 
winston = require('../../server/config/winston'); 

// GET users listing. 

router.get('/', todo.list); 
router.post('/:id', todo.save); 
router.delete('/:id', todo.delete); 

module.exports = router; 

我的問題

如果我去主頁,它工作正常,數據顯示與加載頁,即如果我輸入本地主機/ 3000 /然後默認它重定向到/ todo和完美的作品。

如果我輸入localhost/3000/TODO然後我只看到頁面上的純文本是從服務器返回數據而不是HTML頁面,我可以在上面看到。

我不知道什麼是錯用它...

編輯 我的待辦事項控制器

var db = require('../config/sequelize'), 
    StandardError = require('standard-error'); 
var winston = require('winston'); 


exports.save = function (req, res) { 
    if (!req.user) { 
     return res.send("Please Login"); 
    } 
    console.log("in create", req.body); 
    var _task = { 
     task: req.body.task, 
     UserId: req.user.id 
    } 

    console.log(req.user); 
    db.Todo.create(_task).then(function (todo) { 

     if (!todo) { 
      return res.send(new StandardError('Cannot insert')); 
     } else { 
      console.log(req.body); 
      return res.send(todo); 
     } 
    }).catch(function (err) { 
     return res.send({ 
      errors: err, 
      status: 500 
     }); 
    }); 
}; 

exports.list = function (req, res) { 
    if (!req.user || req.user.isAdmin) { 
     return res.redirect('/'); 
    } 
    console.log(db.User); 

    db.Todo.findAll({where: {UserId: req.user.id}}).then(function (todo) { 
     console.log(todo); 
     res.jsonp(todo); 
    }).catch(function (err) { 
     console.log(err) 
     res.send([{task: "No Data"}]); 
    }); 
}; 
exports.delete = function (req, res) { 

    db.Todo.destroy({ 
     where: { 
      id: req.params.id, 
      UserId: req.user.id 
     } 
    }).then(function (response) { 

     console.log("deleted"); 
     res.send(response + " Record Deleted"); 


     //db.Todo.findAll().then(function (todo) { 
     // res.jsonp(todo); 
     // }).catch(function (err) { 
     // return res.render('error', { 
     //   error: err, 
     //   status: 500 
     //  }); 
     // }); 

    }); 
}; 
+0

請包括 '../controllers/todo' – MoLow

+1

我說我的待辦事項控制器 –

回答

0

可能是你感到困惑與角路線和服務器路線。 使用本地主機/#!/ TODO爲您的待辦事項模板和本地主機/ TODO用於調用服務器

+0

是的,它的工作。原來,節點路線得到了先決角時節點路徑和角度都一樣的.... –

+0

@WaqasNoor有沒有像優先在這種情況下。對於trigerring節點和角路由的URL是不同的。注意** /#!/ **在角路線 –