Angularjs 角节点路由

Angularjs 角节点路由,angularjs,node.js,Angularjs,Node.js,我在服务器上安装了节点,在客户端安装了Angular 角度路线: var todoApp = angular.module('todoApp', ['ngResource', 'ngRoute', 'ngCookies']) .config(function ($routeProvider, $locationProvider) { $routeProvider.when('/', { templateUrl: 'templates/index.h

我在服务器上安装了节点,在客户端安装了Angular

角度路线:

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;
我的问题

如果我转到主页,它工作正常,数据会与加载的页面一起显示,即如果我输入localhost/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
        //       });
        //  });

    });
};

可能是您与角度路由和服务器路由混淆了。
使用localhost/#/todo用于todo模板和调用服务器的本地主机/todo可能与角度路由和服务器路由混淆。
使用localhost/#/todo对于您的todo模板和调用服务器的本地主机/todo请包含“../controllers/todo'I added my todo controller请包含”../controllers/todo'I added my todo controllery是否有效。事实证明,当节点中的路由和角度相同时,节点路由优先于角度路由…@WaqasNoor在这种情况下没有优先级。触发节点和角度路由的URL不同。请注意/#!/在有角度的路线上是的,它起作用了。事实证明,当节点中的路由和角度相同时,节点路由优先于角度路由…@WaqasNoor在这种情况下没有优先级。触发节点和角度路由的URL不同。请注意/#!/以有角度的路线