2016-11-08 7 views
0

フォームの値を渡そうとしていますが、取得できません。いくつかの方法で試してみました。 明らかにNode.jsはURLに渡されたパラメータを認識していませんが、何が原因か分かりません。値をノードに渡す

//AngularController 
$scope.adicionarUsuario = function() { 

    $http.post("/usuario/salvar",{params:{"usuario":$scope.usuarioform}}) 
    .success(function (data) { 
     delete $scope.usuarioform; 
     alert(data); 
     $scope.salvo = true; 
     $scope.cadastraUsuario.$setPristine(); 
    }).error(function (data) { 
     $scope.erro = true; 
     $scope.message = "Aconteceu um problema: " + data; 
    }); 
}; 

//Node Server 
app.post("/usuario/salvar",function (req, res){ 
usuario = req.params.usuario; 
if(usuario.nome == null){ 
    console.error("Ocorreu algum problema"); 
    res.status(500).send('Acontenceu algum problema!'); 
}else{ 
    MongoClient.connect(url, function (err, db) { 
     if (err){ 
     console.error(err.stack); 
     res.status(500).send('Acontenceu algum problema!'); 
     }else { 
     var collection = db.collection('usuarios'); 

     //Salvar Usuario 
     var salva_usu = {nome: usuario.nome, email: usuario.email, senha: usuario.senha}; 

     collection.insert(salva_usu, function (err, result) { 
      if (err){ 
      console.error("Ocorreu algum problema"); 
      res.status(500).send('Acontenceu algum problema!'); 
      }else res.status(200).send("Salvo!"); 
     }); 

     //Fecha a conexão 
     db.close(); 
     } 
    }); 
} 

})

答えて

0

それは特にあなたではなく、文字列以外のオブジェクトである、POSTdataを使用してパラメータを送信するために、より一般的です。

dataを使用するようにコードを修正するか、必要な3つの文字列を3つの異なるparamsに送信してみることができます。

個人的には、データにパスワードが含まれているため、私は最初の方法が好きです。パスワードが要求URLに追加されていればいいとは限りません。

0

リクエストのデータは、data属性で入手できます。

また、JSONリテラル(JS String)になりそうです。それをJSON.parse()と解釈してください!

単に置き換える:

app.post("/usuario/salvar",function (req, res) { 
    usuario = req.params.usuario; 
    // ... 

で:

app.post("/usuario/salvar",function (req, res) { 
    usuario = JSON.parse(req.data).params.usuario; 
関連する問題