SPA设计&路由:AngularJS,TaffyDB,& ExpressJS

时间:2015-12-07 16:08:20

标签: angularjs node.js express routing

我已经使用AngularJS几个月了。我一直在为所有AngularJS应用程序使用Java后端。现在,我想学习如何编写全栈JavaScript应用程序。我从未在NodeJS中编程过。

我的应用程序的当前设计让Angular负责所有路由,这是我最熟悉的。但是,在后端使用NodeJS和Express时,我不确定这是不是很好的设计。在过去,我的后端负责公开我的前端可以利用的REST API,并操纵JSON数据。我没有把它用于其他任何事情。

这是Angular在我的全栈JS应用程序中管理路由的方式

(function()
{
    angular
        .module('passGen', [
            'ui.router',
            'ngAnimate',
            'passGen.generator',
            'passGen.registration',
            'passGen.tabs',
            'passGen.main'
        ])
        .config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider)
        {
            $urlRouterProvider.otherwise('/home');

            $stateProvider
                .state('home', {
                    url: '/home',
                    templateUrl: 'partials/main.html'
                })
                .state('registration', {
                    url: '/register',
                    templateUrl: 'partials/registration.html'
                })
                .state('products', {
                    url: '/products',
                });
        }]);
})();

我想在应用程序中添加用户注册功能。这就是TaffyDB和Node发挥作用的地方。我希望后端维护并提供所有用户注册数据,以避免前端过载。

现在,我尝试做的只是将NodeJS中的一些数据发布到/products路由,但它没有做任何事情。这反映在评论中。

server.js

(function()
{
    // modules
    var express = require('express');
    var path = require('path');
    var TAFFY = require('taffy');
    var app = express();

    app.use(express.static('src/app'));

    var products = TAFFY([{
        'item':1,
        'name':'Shark'
    }]);

    // I don't think this is necessary
    app.get('/#/home', function(req, res)
    {
        res.sendFile(path.join('/index.html'));
    });

    // Not doing anything, also doesn't work with the '/products' path
    app.post('/#/products', function(req, res)
    {
        res.send(products);
        console.log(products);
    });

    app.listen(8878);
})();

也许我需要深入了解ExpressJS routing documentation,或者优化我的Google查询。

我有一些问题:

  1. 我应该使用AngularJS还是ExpressJS来处理路由?
  2. 如果我可以使用AngularJS进行路由,那么我是否可以使用ExpressJS来处理HTTP请求?
  3. 为什么app.post无法server.js工作?

0 个答案:

没有答案