2014-12-27 108 views
1

当试图从在ember-cli中生成的http-mock中更新记录时,控制台中出现500服务器错误。当试图更新http-mock中的余烬时出现500错误

这里是我想要做的

model: function(params) { 
    return this.store.find('user', params.pin); 
}, 
actions: { 
    check_out: function(checkedUser) { 
     var model = this.modelFor(this.routeName); 

     model.set('checked_in',false); 

     model.save().then(function(){ 
      self.transitionTo('volunteer-check-out-success'); 
     }); 
    } 
} 

,但我在控制台

PUT http://localhost:4200/api/users/2 500 (Internal Server Error) 

GET请求收到此错误工作得很好,因此奇怪的是我获得放置请求500个。

有没有人有良好的概述如何使用HTTP模拟?也许即使在它被称为http-mock之前的早期阶段?我仍然对这些如何在ember-cli和文档中工作感到困惑,并且从我发现的例子来看,这些例子都是稀疏的。而且我想读一下关于这在理论上如何工作的一些信息会帮助我自己排除故障。

UPDATE:

这里是在服务器上执行,我有这个变量的GET请求从

var USERS = [ 
{ 
    "id": 1, 
    "checked_in": false, 
    "pin": 1234, 
    "first_name": "John", 
    "last_name": "Doe", 
    "email": "[email protected]", 
    "phone": 8436376960 
}, 
{ 
    "id": 2, 
    "checked_in": false, 
    "pin": 5678, 
    "first_name": "Jane", 
    "last_name": "Smith", 
    "email": "[email protected]", 
    "phone": 8436375738 
} 
]; 

读,我认沽路由处理,像这样

usersRouter.put('/:id', function(req, res) { 
var id = req.params.id; 
var user = USERS.filter(function(user) { 
    return user.id.toString() == id; 
})[0]; 

user.checked_in = req.body.checked_in; 
user.pin = req.body.pin; 
user.first_name = req.body.first_name; 
user.last_name = req.body.last_name; 
user.email = req.body.email; 
user.phone = req.body.phone; 

return res.send(user); 
}); 
+0

由于错误是在API方面,你应该显示在服务器上执行。 – 2014-12-27 16:51:42

+0

我为put请求添加了服务器实现 – Jordan 2015-01-05 18:58:29

回答

1

http://expressjs.com/api.html

我从来没有使用它,但如果它是像大多数ajax模拟工具都在那里,您需要设置路由来处理不同的端点,并处理不同的动词(GET/POST)。

在你的情况我猜你原来的路线设置处理/projects/终点为GET动词,而当你保存吧`