Angular.js:使用forEach创建对象然后$ http POST

时间:2014-09-16 22:40:23

标签: javascript node.js angularjs foreach

编辑:

节点/快速代码插入sqlite数据库:

var db = new sqlite3.Database('db/gnarboxmm.db');

router.post('/api/jobs', function(req,res){
    tsql = "INSERT INTO Jobs ('Job_File_Name', 'Job_Transporter_ID') VALUES ('"+req.body.File_Name+"','"+req.body.Trans_ID+"')";
    console.log(tsql);
    db.run(tsql, function(err,rows){
        res.end("success");
    });
});

更新:我改变了我的代码,现在更近了。通过在forEach循环中添加$ http请求,我更接近我需要的东西。新代码在这里:

angular.forEach($rootScope.moveArray, function(value){
    $http.post('/api/jobs', {'File_Name':value,
                        'Trans_ID':'Backup'});
}, $rootScope.jobData);

仍然不太好。服务器端的请求对象现在显示两个有效条目(其中定义了File_Name和Trans_ID),但是有第三个" undefined"条目。

我正在尝试收集用户与我的视图交互的一系列文件名,然后将文件名实现为要在$ http.post中发送到服务器的对象。

到目前为止,我已经成功创建了一个数组,并将数组项解析为一个准备好的对象数组。这是我用来从我的数组中创建对象的代码块" $ rootScope.moveArray"

$scope.sendBackup = function(){
    angular.forEach($rootScope.moveArray, function(value){
            this.push({'File_Name':value,
                        'Trans_ID':'Backup'});
        }, $rootScope.jobData);
    console.log($rootScope.jobData); 

console.log返回" [object,object]"当我向下钻取时,我得到了两个具有正确分配的File_Name和Trans_ID的对象。

这是我遇到麻烦的地方。我使用$ http.post:

$http.post('/api/jobs', $rootScope.jobData);

在服务器端签入。我使用快递& bodyparser用于处理API路由和req / res对象。使用代码如何在上面,当我记录属性" File_Name"和" Trans_ID"对于req对象,我得到了未定义。我做了一些实验。如果我给$ rootScope.jobData一个索引值($ rootScope.jobData [0]),$ http.post将对数组中的第一个对象起作用。请求对象看起来应该与File_Name:' / validPath'和Trans_ID:'备份'

我的直觉是,我需要为$ rootScope.jobData使用另一个forEach循环来使$ http.post正常工作。到目前为止,我还没有成功实现这一目标。有谁知道这个问题的解决方案?我怀疑角度没有用于发布对象数组的机制,并且认为它是我不熟悉的事实。

0 个答案:

没有答案