Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 如何使用angular追加表单字段以及如何在DB中插入值_Angularjs_Arrays_Node.js_Insert - Fatal编程技术网

Angularjs 如何使用angular追加表单字段以及如何在DB中插入值

Angularjs 如何使用angular追加表单字段以及如何在DB中插入值,angularjs,arrays,node.js,insert,Angularjs,Arrays,Node.js,Insert,我正在使用express和mongoose在mongodb中保存数据。 我正在创建节点API,下面是我的Mongo模式 var bookSchema=new Schema({ subject_name:{type:String}, books:[{book_name:String, book_author:String}] }); 我的html视图如下所示 我想就一个主题名称附加多本书。所以我想知道如何使用Angularjs多次附加Books部分,以及如何将其值存储在

我正在使用express和mongoose在mongodb中保存数据。 我正在创建节点API,下面是我的Mongo模式

var bookSchema=new Schema({ 
    subject_name:{type:String}, 
    books:[{book_name:String, book_author:String}] 
}); 
我的html视图如下所示

我想就一个主题名称附加多本书。所以我想知道如何使用Angularjs多次附加Books部分,以及如何将其值存储在mongodb中

我希望结果是这样的:

请告诉我怎么做


提前谢谢。

嘿,你能检查一下这是否有帮助吗
SubjectBooks
是mongoose模式。按subjectName将新书追加到主题中的查询。如果要查找具有任何其他参数(如_id)的对象,可以更改update方法的第一个参数

节点代码在这里

已编辑

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

/*....mongoose connection creation code goes here...*/

var bookSchema=new Schema({subject_name:{type:String},books[{book_name:String, book_author:String}]
});
var SubjectBooks = mongoose.model('<collection_name>', bookSchema);

app.post('<URL mapping goes here>',function(req,res){
    var subject = req.body; //You have to use body-parser
    var subjectName = subject.subject_name;
    var subjectModel = new SubjectBooks(subject);
    subjectModel.save(function (err,mongRes) {
       if(err){
           res.send(err);
       }
       res.json(mongRes);
    });
});
这将有助于将书籍推入主题书籍数组

你可以问这个问题


可能这段视频会帮助您感谢视频链接@ThanhTùng我知道如何在db中插入数据,但我想知道,当我多次附加boook节时,附加元素的
ng model
将不止一次,因此我需要创建其数组以在db中提交它。。。所以我想知道如何在中插入附加数据DB@SaurabhSharma需要节点代码或角度代码方面的帮助吗?您是否能够将所需的数据从UI发送到节点后端服务器?基本上,我需要Nodejs中的帮助。。。。当我只有一本书时,我可以在数据库中插入数据。。。。如果我有多本书,那么我需要帮助来插入数据。
book\u name
book\u author
html元素将在单击
添加更多书
按钮时追加。嘿,我不想更新文档。当我在DB中发布新的新记录时,我希望执行与更新查询中的
update
相同的操作,您需要的是
{upsert:true}
标志。如果在数据库中找不到文档,则插入新文档。@SaurabhSharma我已经更新了我的解决方案。您能验证这是否是您所需要的吗。现在,如果有新的主题数据出现,它将插入。我缺少的一件事是$each修饰符,因为该修饰符数组被推到另一个包含多个books对象的对象中。嗨,我浏览了上面给出的代码并分析了它,以更新现有文档。但我没有现有的文件。我正在插入并使用
post
方法。或者我不明白你想说什么。
app.controller("mainController",["$scope",'mainService',function($scope,mainService){
$scope.subjectBookCatalogue = {
    subject_name: "",
    books:[{
        book_name:"",
        book_author:""
    }]
};

$scope.saveSubjects = function (data) {
    mainService.saveSubjects(data).then(function(response){
        console.log(response.data);
    },function(response){
    });
};

$scope.subjects = [];
$scope.fetchSubjects = function () {
    mainService.getAllSubjects().then(function(response){
        console.log(response.data);
        $scope.subjects = response.data;
    },function(response){
    });
};


$scope.fetchSubjects();

$scope.submitForm = function(){
    console.log($scope.subjectBookCatalogue);
    $scope.saveSubjects($scope.subjectBookCatalogue);
}
}]);

app.factory("mainService",["$http",function($http){
return {
    saveSubjects : function(data){
        return $http({
            method:"POST",
            url: "http://localhost:3000/v1/subject/"+data.subject_name,
            data:data,
            headers: {
                'Content-Type': 'application/json'
            }
        });
    },
    getAllSubjects : function(){
        return $http({
                        method:"GET",
                        url:"http://localhost:3000/v1/subjects"
                     });
    }
}
}]);