Express Server,调用state.go并在Controller中运行方法

时间:2015-11-28 22:00:58

标签: angularjs node.js angular-ui-router

我目前正在使用角度js app运行快速服务器express.js。我使用带有stateprovider和state.go的UI路由器https://github.com/angular-ui/ui-router

我要求允许在浏览器中输入网址

/getEmployeeDetails/1234

我是否会沿着正确的方向前进,因为可以将以下代码添加到express server.js中以实现此目的,或者我应该在角度应用状态下处理此问题。

app.get('/p/:empId', function(req, res) {
  controller.getEmpDetaails(req.params.empId);
  state.go("employeeDetailsview")
});

1 个答案:

答案 0 :(得分:0)

我不确定在Express服务器中编写角度代码的原因是什么,但您应该将客户端代码与服务器代码分开。

我假设您正在尝试通过服务器上的ID获取一些员工详细信息。 通常的方法是通过从客户端向服务器发送带有ID号的HTTP请求。然后,服务器将处理HTTP请求(可能从数据库中获取一些数据)并将HTTP响应返回给客户端。然后客户端将处理响应并对其执行某些操作。

在你的客户中,你可以这样做:

$http.post('SERVER_URL/getEmployeeDetails/', {'id': 1234})
.then(function(response){
    // Response.data will have the data returned from the server
    // Do something with it. for example, go to other state and pass the data to it
    state.go("employeeDetailsview", {'employee': response.data});
});

以上内容将要求ID为1234的员工并对其进行操作。

在服务器端:

app.post('getEmployeeDetails/', function(req, res) {
  var employeeId = req.body.id; // YOU SHOULD USE THE BODY-PARSER MODULE IN ORDER FOR THIS TO WORK. 
....
// Do something with ID
....
// Return some data to the client - for example an employee object
res.status(200).json({'data': employeeObject});

});