2017-03-27 132 views
0

我在貓鼬幫助下使用angularjs db ismongodb。在貓鼬模式中創建一個簡單的入口表單,但它顯示一個$ http.post(...)。success是不是一個函數我不知道如何解決這個任何人幫助如何解決這個問題,我在此技術如何在MeanStack中使用貓鼬在Mongodb中存儲值

HTML代碼

<!DOCTYPE html> 
<html ng-app="App"> 
<head> 

    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.3/angular.min.js"></script> 

    <script src="Controller/MongooseCrud.js"></script> 
</head> 

<body > 

    <div ng-controller="MongooseController"> 



     <label for="email">Email: </label> 
     <input type="email" name="email" ng-model="user.email" /><br /> 
    <label for="name">Name: </label> 
     <input type="text" name="name" ng-model="user.name" /><br /> 
    <label for="age">Age: </label> 
     <input type="number" name="age" ng-model="user.age"/><br /> 
     <input type="Button" value="submit" ng-click="AddNewDetails()"> 

    </div> 



</body> 
</html> 

控制器

var app = angular.module("App", [ ]); 


app.controller('MongooseController', ['$scope', '$http' ,'$window', '$filter', 


function ($scope, $http, $window, $filter) { 



    $scope.AddNewDetails = function () { 

     $http.post('/AddNewDetails', $scope.user).success(function (response) { 


      console.log((response)); 
     }).error(function (err) { 

     }); 
    }; 


}]); 
是新

Server.js

var express = require('express'); 
var app = express(); 
var mongoose = require('mongoose'); 
var Schema = mongoose.Schema(); 
var bodyParser = require('body-parser'); 
var http = require('http'); 

app.use(express.static(__dirname + "/public")); 

app.use(bodyParser.json()); 
mongoose.connect('mongodb://localhost/crud'); 

var Schema = new mongoose.Schema({ 
    _id: String, 
    name: String, 
    age: Number 
}); 

var user = mongoose.model('emp', Schema); 

app.post('/AddNewDetails', function (req, res) { 

    console.log(req.body); 

    new user({ 
     email: req.body.email, 
     name: req.body.name, 
     age: req.body.age 


    }).save(function (err, doc) { 

     if (err) { 
      res.json(err); 
     } 
     else { 
      console.log(doc); 
      res.send('Successfully inserted!'); 
     } 
    }); 
}); 




app.listen(8082); 
console.log("server running on port 8082"); 
+0

您還沒有定義'email'在模式 –

回答

0

您使用的格式不正確。

$ http服務https://docs.angularjs.org/api/ng/service/ $ HTTP

作品等 $ http.get( 'URL'),然後(successCallback,errorCallback)。

+0

我改變現在的語法錯誤是走了,但值不存儲在數據庫 – jose

+0

好了,可以請你告訴我你是什麼錯誤登上服務器? –

+0

沒有錯誤,但沒有插入值 – jose

0

使用服務...因爲您必須將post改爲create。它會給你最好的結果。

angular.module('yourApp').factory("yourService", function($http){ 
 

 
\t return{ 
 
\t \t create : function(insertData){ 
 
\t   return $http.post("http://localhost:yourHost/AddNewDetails/", insertData); 
 
\t  } 
 
});