AngularJS到Express服务器的路由路径

AngularJS到Express服务器的路由路径,angularjs,node.js,express,routes,Angularjs,Node.js,Express,Routes,我是AngularJS、Node和Express的初学者。 我甚至无法使用$http.get或$http.post获得最基本的路由。 我在网上找到的每个示例都忽略了服务器中文件名、角度控制器路径和路由路径之间的关系。它们只显示代码,而不显示路径和文件名 这是我的html文件:“/programs/static/example.html”: 这是我的NodeJS服务器:“/programs/node server.js” 问题是,我的服务器的控制台没有显示“RequestReceived”。这是我

我是AngularJS、Node和Express的初学者。
我甚至无法使用$http.get或$http.post获得最基本的路由。
我在网上找到的每个示例都忽略了服务器中文件名、角度控制器路径和路由路径之间的关系。它们只显示代码,而不显示路径和文件名

这是我的html文件:“/programs/static/example.html”:

这是我的NodeJS服务器:“/programs/node server.js”


问题是,我的服务器的控制台没有显示“RequestReceived”。这是我创建的一个示例应用程序,只是为了将其发布到Stack Overflow。在我真正的应用程序中,我尝试了尽可能多的不同路线。我可以使用简单的URL(而不是$http方法)在节点服务器中获取app.get()。但从我的测试中可以明显看出,Angular controller没有发送任何请求,或者服务器没有接收到它们。

您的POST端点的名称中不应包含文件扩展名。如果您的
\static
文件夹中有任何这样的文件名,则发到
“example.html”
的任何帖子都将尝试返回名为
example.html
的实际html文件。您的API端点应具有明确的唯一名称,且不具有文件扩展名:

app.post('/test', function(req, res){
  console.log("request received.");
});
使用
$http.post
并传递
“/”
作为参数时,发布到的实际URL将与当前URL相对。在发布到服务器时,您应该始终使用绝对URL(除非您知道自己在做什么)。您还应该实现
.then
.catch
方法。这些将帮助您调试问题:

$http.post("http://localhost:8080/test", data).then(function(response) {
  console.log(response);  //this will log a success
}).catch(function(error) {
  console.log(error);  //this will log the error
});
您还忘记在控制器中插入
$http
提供程序:

exampleApp.controller('exampleController', function($scope, $http) {
  ...
});

在您的控制器中注入$http依赖项:exampleApp.controller('exampleController',function($scope,$http)…如果您真的告诉我们问题是什么,这将对我们有很大帮助。什么不起作用?错误消息是什么(如果有)。包括两个AngularJS的错误消息(在浏览器开发工具中)快车server@RicardoTribaldos我添加了依赖项,但它不起作用。@Pop-A-Stash问题是我服务器的控制台没有显示“已接收请求”。这是我创建的一个示例应用程序,只是为了将其发布到堆栈溢出。在我的实际应用程序中,我尝试了尽可能多的不同路径。我可以获取app.get()在我的节点服务器中使用简单URL(而不是$http方法)。但是,从我的测试中可以明显看出,我的Angular controller没有发送任何请求,或者服务器没有接收到它们。如果您有更多信息,请编辑原始问题。不要将其添加到注释中。注释不如您的问题可见,这将帮助其他人帮助您感谢您的解释。我尝试了您所做的但是,我确信我的问题与我的端点有关,例如app.post()中的“/test”或$http.post()中的“localhost/example.html/test”。我尝试了您所说的,但有0条消息发布到控制台。没有。没有错误,没有成功消息。我做错了什么,我不知道是什么。哪个控制台?您需要尽可能具体。这是Express控制台,还是web浏览器中的开发工具?此外,我在中包括了我的路径和文件名我的原创帖子是因为我知道这就是问题所在。我相信你应该做{{request()},这就是你在angularI中访问$scope的方式。谢谢@Pop-A-Stash。我将你的答案标记为解决方案。
app.post('/test', function(req, res){
  console.log("request received.");
});
$http.post("http://localhost:8080/test", data).then(function(response) {
  console.log(response);  //this will log a success
}).catch(function(error) {
  console.log(error);  //this will log the error
});
exampleApp.controller('exampleController', function($scope, $http) {
  ...
});