角节点路由

时间:2015-12-22 11:12:19

标签: angularjs node.js

我在服务器上的节点和客户端上的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页面。

我不知道它有什么不对......

修改 我的Todo控制器

    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
        //       });
        //  });

    });
};

1 个答案:

答案 0 :(得分:0)

可能是您对角度路线和服务器路线感到困惑。 使用 localhost /#!/ todo 作为todo模板,使用 localhost / todo 调用服务器