Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 如何从节点服务器渲染角度路由?_Angularjs_Node.js_Express - Fatal编程技术网

Angularjs 如何从节点服务器渲染角度路由?

Angularjs 如何从节点服务器渲染角度路由?,angularjs,node.js,express,Angularjs,Node.js,Express,我是angular+node(express)项目的新手。我有一个有四个页面的angular应用程序,我将该应用程序文件夹放在node_模块文件夹的公用文件夹下。我可以通过url“localhost:8081/#/”访问主目录。现在,我想从server.js(node server)加载一个新页面,并发送一些数据以显示在该页面上。下面是我编写的代码。我已经建立了在angular网站的网页。所以我不想用jade或ejs。告诉我正确的方法 app.post('/authenticate',urlen

我是angular+node(express)项目的新手。我有一个有四个页面的angular应用程序,我将该应用程序文件夹放在node_模块文件夹的公用文件夹下。我可以通过url“localhost:8081/#/”访问主目录。现在,我想从server.js(node server)加载一个新页面,并发送一些数据以显示在该页面上。下面是我编写的代码。我已经建立了在angular网站的网页。所以我不想用jade或ejs。告诉我正确的方法

app.post('/authenticate',urlencodedParser,function(req,res){
var temp;
res.render( '/#/dashboard', { temp:"tempdata" } );
});

我想转到路由localhost:8081/#/dashboard使用数据temp指向的页面。

您做得不对。NodeJS只能用于服务索引页,所有路由只能在前端处理。使用角度路由或ui路由来处理路由

服务索引页(NodeJS):

app.route('/').get(res.render('index'));
angular.module('core').config(['$stateProvider',
    function($stateProvider) {
        // About state routing
        $stateProvider.
        state('dashboard', {
            url: '/dashboard',
            templateUrl: 'dashboard.html'
        }).state('home', {
            url: '/',
            templateUrl: 'home.html'
        })  
    }
]);
创建路线(Angularjs):

app.route('/').get(res.render('index'));
angular.module('core').config(['$stateProvider',
    function($stateProvider) {
        // About state routing
        $stateProvider.
        state('dashboard', {
            url: '/dashboard',
            templateUrl: 'dashboard.html'
        }).state('home', {
            url: '/',
            templateUrl: 'home.html'
        })  
    }
]);

更好的方法是使用app.use(express.static());我已经把app.use(express.static('public'))放进去了;这不是办法,Angular有自己的前端路由,Node有自己的后端路由。在Angular中,您应该设置仪表板路由,并在那里要求Node通过http调用为您提供tempdata。我正在使用ui路由器动态加载和创建状态,例如,我正在加载menu.html/menu.ctrl/和menu.service并创建动态状态,具体取决于用户拥有的权限$stateprovider允许您创建动态状态州政府已按角度设置路线。基本上,我想提交登录表单到服务器,并加载带有临时数据的仪表板页面。为什么我需要在客户端和服务器端处理路由