我得到'TypeError:无法设置属性' auto'当我尝试使用frnt端的angularjs和后端的nodejs更新我的mongodb时为null。这是我的代码:
我的角度代码:
scope.lol.then(function(user){
console.log(user[0]._id);
iden=user[0]._id;
$scope.userss = user;
console.log(iden);
$http.put('/api/updateUser', user[0]);
});
我的api:
module.exports.updateUser = function (req, res) {
var id = req.param.id;
User.findById(id, function(err, user) {
if (err) throw err;
// change the users location
user.auto = 'true';
// save the user
user.save(function(err) {
if (err) throw err;
console.log('User successfully updated!');
});
});
}
答案 0 :(得分:0)
我将假设您正在使用ExpressJS作为您的API,因此您需要使用body-parser
来检索您的请求正文。你可以在这里阅读更多相关信息:http://expressjs.com/en/api.html - ctrl + f,以便身体解析器跳到好位:)
在您的API中尝试这样的事情(您可能需要调整它以适合您的应用,但它会向您展示如何从请求的主体中提取内容。链接上有代码示例我也发布了):
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.urlencoded({
extended: false
}));
app.use(express.json());
app.use(express.urlencoded());
app.listen(1337);
app.put('/updateUser', updateUser);
function updateUser (req, res) {
var id = req.body.id;
User.findById(id, function(err, user) {
if (err) throw err;
// change the users location
user.auto = 'true';
// save the user
user.save(function(err) {
if (err) throw err;
console.log('User successfully updated!');
});
});
}
希望有所帮助!
答案 1 :(得分:0)
$http.put('/api/updateUser', user[0]);
更改为
$http.put('/api/updateUser', {params:{id:user[0]._id}});
和api
var id = req.param.id;
更改为
var id = req.query.id;