【问题标题】:how to store values in Mongodb using mongoose in MeanStack如何在平均堆栈中使用猫鼬在 Mongodb 中存储值
【发布时间】:2017-08-20 05:20:23
【问题描述】:

我在 mongoose 的帮助下使用 angularjs db ismongodb。我在 mongoose 模式中创建了一个简单的输入表单,但它显示了一个 $http.post(...).success 不是一个函数我不知道如何解决这个任何人帮助如何解决这个问题我是这项技术的新手

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) {

        });
    };


}]);

服务器.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");

【问题讨论】:

  • 你没有在架构中定义email

标签: angularjs mongodb mongoose mean-stack mongoose-schema


【解决方案1】:

您使用的格式不正确。

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

这样工作 $http.get('url').then(successCallback, errorCallback);

【讨论】:

  • 我改变了语法,现在错误消失了,但值没有存储在数据库中
  • 好的,你能告诉我你在服务器上遇到了什么错误吗?
【解决方案2】:

使用服务...因为您必须将单词 post 更改为 create。它会给你最好的结果。

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

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

【讨论】:

    猜你喜欢
    • 2017-02-14
    • 2017-05-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-28
    • 2012-08-16
    • 2020-11-17
    • 1970-01-01
    • 2015-01-04
    相关资源
    最近更新 更多