Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.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 需要在mongodb中执行推送操作不起作用_Angularjs_Node.js_Mongodb_Mongoose_Roles - Fatal编程技术网

Angularjs 需要在mongodb中执行推送操作不起作用

Angularjs 需要在mongodb中执行推送操作不起作用,angularjs,node.js,mongodb,mongoose,roles,Angularjs,Node.js,Mongodb,Mongoose,Roles,我有一些行动,他们是查看,编辑,删除,添加每一页 var roleprivilege = { 'role_name' : req.body.role_name, 'add':req.body['add'], 'del':req.body['del'], 'view':req.body['view'], 'edit':req.body['edit'],

我有一些行动,他们是查看,编辑,删除,添加每一页

var roleprivilege = {
             'role_name' : req.body.role_name,
             'add':req.body['add'],
             'del':req.body['del'],
             'view':req.body['view'],
             'edit':req.body['edit'],
               }
我正在使用findOneAndUpdate

mongo.role.findOneAndUpdate({'_id': id},roleprivilege,{upsert: true,new : true},function(err, response) {
                console.log("Inserted");
            });
它的工作很好,但我需要存储所有的添加,删除,编辑,查看内的作用。我试过这样做

var roleprivilege = {
             'role_name' : req.body.role_name,
             'role':{
             'add':req.body['add'],
             'del':req.body['del'],
             'view':req.body['view'],
             'edit':req.body['edit']
              }
           }
{ role_name: 'SA',
  view: [ 'dashboard', 'users', 'settings' ],
  add: 'users',
  edit: 'users',
  del: [ 'users', 'settings' ] }
这里的问题是,如果我只选择一个值,它就像字符串一样存储

我的观点就在这里

        <div class="col-md-12 role_class" ng-repeat="menu in privilege_menu" >
          <div class="col-md-2">{{menu}}</div>
          <div class="col-md-10" ng-int="{{l_name =( menu|lowercase)}}">
            <span class="role_checkbox">  <label class="control control--checkbox">View
              <input type="checkbox" ng-checked="check_role(l_name,'view')" name="view" value="{{menu|lowercase}}" />
               <div class="control__indicator"></div>
              </label></span>
             <span class="role_checkbox"  > <label class="control control--checkbox">Add

                  <input type="checkbox"  name="add" value="{{menu|lowercase}}"  />
                   <div class="control__indicator"></div>
               </label></span>
             <span class="role_checkbox">  <label class="control control--checkbox">Edit
                  <input type="checkbox" name="edit" value="{{menu|lowercase}}" />
                   <div class="control__indicator"></div>
               </label></span>
             <span class="role_checkbox">  <label class="control control--checkbox">Delete
                  <input type="checkbox" name="del" value="{{menu|lowercase}}" />
                   <div class="control__indicator"></div>
               </label></span>
          </div>
        </div>
我的身体看起来像这样

var roleprivilege = {
             'role_name' : req.body.role_name,
             'role':{
             'add':req.body['add'],
             'del':req.body['del'],
             'view':req.body['view'],
             'edit':req.body['edit']
              }
           }
{ role_name: 'SA',
  view: [ 'dashboard', 'users', 'settings' ],
  add: 'users',
  edit: 'users',
  del: [ 'users', 'settings' ] }

这里的问题是,当只有一个元素时,req.body不使用list对象,例如:

view: [ 'dashboard', 'users', 'settings' ], 
add: 'users', instead of add: ['users']
在将变量roleprivilege插入mongoDB之前,您需要改进变量roleprivilege的创建以处理这种情况

打印角色特权时,您希望它看起来像这样:

{
   'role_name' :'SA',
   'role':{
   'add': ['users'],
   'del': [ 'users', 'settings' ],
   'view':[ 'dashboard', 'users', 'settings' ],
   'edit':['users']
    }
}

req.body对象的外观如何?感谢您的响应我的req.body看起来像这样{role_name:'SA',view:['dashboard','users','settings'],add:'users',edit:'users',del:['users','settings']}我在代码中进行了更新,但我修复了问题