2016-11-30 7 views
1

`TypeError:バックエンドのfrntとnodejのanglejsを使用してmongodbを更新しようとすると、nullのプロパティ 'auto'を設定できません。TypeError:NULLのプロパティ 'auto'を設定できません

私の角度コード:

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:私はあなたのAPIのためのExpressJSを使用していると仮定するつもりだ

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!'); 
    }); 
    }); 
} 
+2

var id = req.param.id; 

変更エラーがその文で 'user.auto = '真' を意味します。 '変数' user'に 'null'が含まれています。 – Pointy

+0

明らかに、 'User.findById'は渡された' id'の 'User'を見つけません。 – Cerbrus

+0

'req.param.id'ではなく' JSON.parse(req.body).id'を試してください – dan

答えて

0
$http.put('/api/updateUser', user[0]); 

$http.put('/api/updateUser', {params:{id:user[0]._id}}); 

への変更とAPIに

var id = req.query.id; 
+1

PUTリクエストをボディに入れたいのですが、答えはクエリパラメータとしてタックしているだけです。次回は、エンドポイントでリクエストの本文を読みたいので、まったく同じ問題に遭遇します。 –

0

ので、あなた」ここに私のコードですリクエストの本文を取得するには、body-parserを使用する必要があります。 http://expressjs.com/en/api.html - body-parserの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!'); 
    }); 
    }); 
} 

希望に役立ちます。

関連する問題