不会使用nodeJS将数据插入到“users”集合到mongoDB

时间:2017-02-04 03:40:00

标签: javascript node.js mongodb

我遇到了使用nodeJS将数据插入mongoDB的问题。

这是我的server.js文件的一部分:

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

db.collection('users', function(err, usersCollection){

    usersCollection.insert(req.body, {w : 1} , function(err){
        return res.send();
    });

    });
});

这是我的index.html文件中的控制器:

app.controller('SLController', function ($scope, $http){
    $scope.submitSignup = function(){
        var newUser = {
            username: $scope.username,
            email: $scope.email,
            password: $scope.password

        };


    $http.post('/users', newUser).then(function(){
            alert('Success');
        });

    }

    /*$scope.signin = function (){
        $http.put('/users/signin', {username: $scope.username, password: $scope.password})
            .then(function(){
                alert("Successfully signed in.");
            }, function(err){
                alert("Bad login credentials.");
            })
        }*/

});

这是我试图从我的sl.html文件中插入的表单部分:

<h3 class="form-titles center-block">Sign Up</h3>

<input type="text" class="form-control form-subtitles" placeholder="Usuario" ng-model="username">

<input type="text" class="form-control form-subtitles" placeholder="E-mail" ng-model="email">

<input type="password" class="form-control form-subtitles" placeholder="Password" ng-model="password">

<input ng-click="submitSignup()" type="submit" class="form-control form-subtitles btn btn-info" value="Signup">

我看过其他问题但是他们的安静不同。

PS。我在mongo的控制台中使用的命令是db.users.find()

谢谢!

-------------------------------------------- ---------------编辑---------------------------------- ------------------------

我用来解决它的一个特殊解决方案:

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

 db.collection('users', function(err, usersCollection){

    usersCollection***.save***(req.body, {w : 1} , function(err){
        return res.send();
    });
  });
});

INSTEAD OF .insert使用.save

2 个答案:

答案 0 :(得分:1)

这很简单,您可以通过它轻松地在数据库中创建记录。只需要两个参数就是电子邮件和名称。

router.all('/create', function (req, res) {
        var database = req.Collection;
        var name = req.body.name;// or you can do directly as 'shekhar'
        var email = req.body.email;// or you can do directly as 'a@gmail.com'
        var record = new database({
            name: name,
            email: email
        });
        if (record.length > 0) {
            record.save(function (err, result) {
                if (err) {
                    res.json({status: 0, message: err})
                } else {
                    res.json({status: 1, name: name, email: email, message: " success"});
                }
            })
        } else {
            res.json({status: 0, msg: "Invalid Fields"});
        }
    });

答案 1 :(得分:0)

我用来解决它的一个特殊解决方案:

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

  db.collection('users', function(err, usersCollection){

     usersCollection***.save***(req.body, {w : 1} , function(err){
         return res.send();
     });
  });
 });

INSTEAD OF *.insert*使用*.save*