从expressjs和angularjs获取请求

时间:2014-07-08 06:25:04

标签: javascript angularjs routes

我的快递应用配置中有一条简单的路线,如 -

app.get('/download/:noteid/:fileid',notes.download);

其中notes.download是一个内容为 -

的函数
exports.download = function(req,res) {
    console.log("here");
    console.log(req.params.noteid);
    console.log(req.params.fileid);
};

现在我直接在浏览器中打开网址 -

http://localhost:5000/download/5f4815f2-73a9-4621-86ed-b4e302cc49ba/all

我看到服务器中的正确日志 但是当我尝试类似的东西时 -

<a href="/download/5f4815f2-73a9-4621-86ed-b4e302cc49ba/all" class="btn btn-default pull-left">Download</a>

然后点击此下载按钮angular将我带到一个新页面,没有为该页面定义任何模板,我在服务器的日志中看不到任何内容。那么如何通过锚元素直接输入url来获取像我所做的那样的请求。

我的角度应用程序的路由配置是这样的,万一需要 -

$routeProvider
        .when('/', { templateUrl: '/partials/main/main', controller: 'mainCtrl'})
        .when('/admin/users', { templateUrl: '/partials/admin/user-list',
            controller: 'PaginationDemoCtrl'
        })
        .when('/browse/notes', { templateUrl: '/partials/notes/browseNotes',
            controller: 'browseNotesCtrl', resolve:routeRoleChecks.user
        })
        .when('/upload/notes', { templateUrl: '/partials/notes/uploadNotes',
            controller: 'uploadNotesCtrl', resolve:routeRoleChecks.user
        })
        .when('/profile',{ templateUrl:'/partials/account/mvProfile.jade',
            controller: 'mvProfileCtrl' , resolve:routeRoleChecks.user
        }); 

1 个答案:

答案 0 :(得分:0)

直接从地址栏访问网址时,当您尝试通过网络应用程序中的超链接(锚标记)点击网址时,它不会通过routeprovider,routeprovider会检查是否为您的链接定义了路径。

您可以删除href并使用锚标记的click事件来调用控制器中的函数。此函数必须使用url调用$ http模块的get方法。

或 -

在routeprovider中添加路径。

https://docs.angularjs.org/api/ng/service/ $ HTTP GET#