javascript - 与 Node 成 Angular

标签 javascript angularjs node.js express web

所以我正在尝试使用 AngularJS 和 Node.js。我正在尝试设置客户端路由,但遇到一些问题。

编辑

所以我改变了一些代码如下 https://github.com/scotch-io/starter-node-angular @PareshGami 建议的。我得到了要点击的 URL,但现在实际内容未加载。

这是我更新的代码:

服务器.js:

var express = require('express'),
    app = express(),
    bodyParser = require('body-parser'),
    mongoose = require('mongoose');




app.use(bodyParser.json());


require('./server/routes')(app);

app.use('/js', express.static(__dirname + '/client/js'));
app.use('/views', express.static(__dirname + '/client/views'));
app.use('/bower_components', express.static(__dirname + '/bower_components'));
app.use('/node_modules', express.static(__dirname +'/node_modules'));



app.listen(3000);
console.log('Im Listening...');
exports = module.exports = app;

我的 Angular app.js:

(function (angular) {
    'use strict';
    var app = angular.module('eos', [
        'ngRoute',
        'ngResource',
        'eos.opsCtrl',
        'eos.dashboardCtrl'
        ]);

    app.config(function ($routeProvider, $locationProvider){
        $routeProvider.when(
           '/',
           {
               templateUrl: 'views/dashboard.html',
               pageName: 'Dashboard',
               controller: 'dashboardCtrl'
           }
       );
        $routeProvider.when(
           '/ops',
            {
                templateUrl: 'views/ops.html',
                pageName: 'Operations',
                controller: 'opsCtrl'
            }
        );
        $routeProvider.otherwise({redirectTo: '/'});
        $locationProvider.html5Mode(true);

    });

}(window.angular));

我的routes.js(新):

var opsController = require('./controllers/opsController');

module.exports = function(app) {
//path.join(__dirname, 'client');
    // server routes ===========================================================
    // handle things like api calls
    // authentication routes

    app.get('/api/ops', opsController.list);
    app.post('/api/ops', opsController.create);


    // frontend routes =========================================================
    // route to handle all angular requests
    app.get('*', function(req, res) {
        res.sendFile('index.html', { root: './client' });
    });

};

那么休息是相同的。以及为什么它没有在 ng-view 中加载内容的建议?

<小时/>

终于开始工作了!我的 server.js 设置错误。

这是正确的 server.js。注意位置:

require('./server/routes')(app);

它需要是我认为的编译序列的父亲

var express = require('express'),
    app = express(),
    bodyParser = require('body-parser'),
    mongoose = require('mongoose'),
    methodOverride = require('method-override');





// get all data/stuff of the body (POST) parameters
app.use(bodyParser.json());
// parse application/vnd.api+json as json
app.use(bodyParser.json({ type: 'application/vnd.api+json' }));
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: true }));




app.use(methodOverride('X-HTTP-Method-Override'));
app.use('/js', express.static(__dirname + '/client/js'));
app.use('/views', express.static(__dirname + '/client/views'));
app.use('/bower_components', express.static(__dirname + '/bower_components'));
app.use('/node_modules', express.static(__dirname +'/node_modules'));


require('./server/routes')(app);
app.listen(3000);
console.log('Im Listening...');
exports = module.exports = app;

最佳答案

我是在 PareshGami 的指导下查看这个网站的 'setting-up-a-mean-stack-single-page-application' 。之后我就能够让路由工作了。我的问题的关键是我的 server.js 文件和 require('./server/routes')(app); 部分的顺序。

关于javascript - 与 Node 成 Angular ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32001450/

相关文章:

javascript - 如何对主要职责是重定向到应用程序外部页面的 Angular 服务进行单元测试?

javascript - jQuery 验证消息问题

javascript - 在模板 ANGULAR5 中显示数据(对象)的最佳方式

AngularJS - 如何在嵌套 http.get 请求的情况下返回对象

angularjs - 动态 templateUrl - AngularJS

javascript - API 的集成与单元测试

javascript - 如何使用ES6 super在子构造函数中调用父方法?

javascript - jQuery 按链接 x 次然后执行此操作?

javascript - 需要同步 pouchDB 数据库的解决方案

javascript - Mongodb动态like运算符