Angularjs 将操作放入Node.js中
对于put请求:Angularjs 将操作放入Node.js中,angularjs,node.js,Angularjs,Node.js,对于put请求: router.put('/:id', controller.update); 我的更新方法如下所示: exports.update = function(req, res) { if(req.body._id) { delete req.body._id; } Thing.findById(req.params.id, function (err, thing) { if (err) { return handleError(res, err); }
router.put('/:id', controller.update);
我的更新方法如下所示:
exports.update = function(req, res) {
if(req.body._id) { delete req.body._id; }
Thing.findById(req.params.id, function (err, thing) {
if (err) { return handleError(res, err); }
if(!thing) { return res.status(404).send('Not Found'); }
var updated = _.merge(thing, req.body);
updated.save(function (err) {
if (err) { return handleError(res, err); }
return res.status(200).json(thing);
});
});
};
PUT http://localhost:9000/api/things/56c8325b9a0ee7d00d266495
net::ERR_CONNECTION_REFUSED(anonymous function) @ angular.js:11442sendReq @
提出请求:
$http.put('/api/things/'+ thing._id, updatedThingObject)
.success(function(update){
console.log("update", update)
})
.error(function(err){
console.log("err", err)
})
它在以角度发出请求时传递对象时给出连接错误
错误如下所示:
exports.update = function(req, res) {
if(req.body._id) { delete req.body._id; }
Thing.findById(req.params.id, function (err, thing) {
if (err) { return handleError(res, err); }
if(!thing) { return res.status(404).send('Not Found'); }
var updated = _.merge(thing, req.body);
updated.save(function (err) {
if (err) { return handleError(res, err); }
return res.status(200).json(thing);
});
});
};
PUT http://localhost:9000/api/things/56c8325b9a0ee7d00d266495
net::ERR_CONNECTION_REFUSED(anonymous function) @ angular.js:11442sendReq @
如果我取下更新的对象,它会使请求很好,但当然没有任何内容得到更新
那个案子。请问这里有什么问题
我想
函数未被调用的原因是我有一个函数在节点中被重复调用
var autoCreate = function(){
console.log("THING CREATED AUTOMATICALLY")
var randomNumb=0;
clearTimeout(randomNumb);
randomNumb = (Math.random()* (10-5) + 5).toFixed(0);
console.log("random number", randomNumb)
var randomThing =randomstring({
length: randomNumb,
numeric: false,
letters: true,
special: false
});
console.log("ranfom thing", randomThing)
Thing.create({
name: randomThing,
readByUser: false
}, function(err, thing) {
console.log("THING IS", thing)
//setTimeout(autoCreate, randomNumb * 1000);
});
}
setTimeout(autoCreate, 10*1000);
因为这是在发出post/put请求时运行的,所以我得到了连接错误。如何处理此问题以使此函数能够运行并能够发出put/post请求?什么是
updatedThingObject
?我怀疑updatedThingObject
是造成问题的原因,因为它可能会导致一些错误,导致连接中断,而您实际遇到了此错误否。即使我传递完全相同的对象而不进行任何更新,它仍然不会work@Michelem:即使我在没有任何更新的情况下传递相同的对象,它也会返回相同的错误首先,您需要检查控制台错误,如CORS策略错误。。开发人员工具为这种没有线索的东西提供了提示—试试看:-)