繁体   English   中英

将问题存储到一系列数据

[英]Storing questions to an array of data

我一直在尝试找出如何向本地数据库中的数据数组添加注释。 我现在正在研究的想法是将注释数组添加到数据数组中,这样很容易知道哪个注释是针对哪个数据集的。 当我尝试使用以下代码进行操作时,它将无法正常工作:

(这是在userschema中,我定义了将保存数据的数组)

test1: { type: array, required: false }

(接下来,我尝试通过push添加注释数组,但无法正常工作,我以测试0为例,通常取决于您要向其添加注释的测试。Test1包含更多内容要将问题添加到其中的数据的数组。这就是为什么我使用user.test1 [0])

user.test1[0].push(newComment);

(这在以下使用接头的情况下不起作用)

user.test1.splice(1, 0, newComment)

由于某种原因,似乎无法访问user.test1 [0],但我不知道为什么? 还是在测试中添加注释时应该使用另一种技术?


app.updateTest1 = function(newComment1, newComment2, index) {
          app.errorMsg = false; // Clear any error message
          app.disabled = true; // Lock form while processing
          // Check if username submitted is valid
          var userObject = {}; // Create the user object to pass to function
          userObject._id = app.currentUser; // Pass current user _id in order to edit

          userObject.test1 = [$scope.newComment1, $scope.newComment2];

          User.editUser(userObject).then(function(data) {

          });
        };


    userFactory.editUser = function(id) {
        return $http.put('/api/edit', id);
    };


   router.put('/edit', function(req, res) {
        var editUser = req.body._id; // Assign _id from user to be editted to a variable
        if (req.body.name) var newName = req.body.name; // Check if a change to name was requested
        if (req.body.username) var newUsername = req.body.username; // Check if a change to username was requested
        if (req.body.email) var newEmail = req.body.email; // Check if a change to e-mail was requested
        if (req.body.permission) var newPermission = req.body.permission; // Check if a change to permission was requested

        if (req.body.test1) {
          var newTest1 = req.body.test1;
        }
        if (req.body.test2) {
          var firstTest2 = req.body.test2;
          var newTest2 = firstTest2.split(" ");
        }
        if (req.body.test3) {
          var firstTest3 = req.body.test3;
          var newTest3 = firstTest3.split(" ");
        }
        if (req.body.test4) {
          var firstTest4 = req.body.test4;
          var newTest4 = firstTest4.split(" ");
        }
        if (req.body.test5) {
          var firstTest5 = req.body.test5;
          var newTest5 = firstTest5.split(" ");
        }

        // Look for logged in user in database to check if have appropriate access
        User.findOne({ username: req.decoded.username }, function(err, mainUser) {
            if (err) {
                // Create an e-mail object that contains the error. Set to automatically send it to myself for troubleshooting.
                var email = {
                    from: 'MEAN Stack Staff, cruiserweights@zoho.com',
                    to: 'gugui3z24@gmail.com',
                    subject: 'Error Logged',
                    text: 'The following error has been reported in the MEAN Stack Application: ' + err,
                    html: 'The following error has been reported in the MEAN Stack Application:<br><br>' + err
                };
                // Function to send e-mail to myself
                client.sendMail(email, function(err, info) {
                    if (err) {
                        console.log(err); // If error with sending e-mail, log to console/terminal
                    } else {
                        console.log(info); // Log success message to console if sent
                        console.log(user.email); // Display e-mail that it was sent to
                    }
                });
                res.json({ success: false, message: 'Something went wrong. This error has been logged and will be addressed by our staff. We apologize for this inconvenience!' });
            } else {
                // Check if logged in user is found in database
                if (!mainUser) {
                    res.json({ success: false, message: "no user found" }); // Return error
                } else {
                    // Check if a change to name was requested
                    if (newName) {
                        // Check if person making changes has appropriate access
                        if (mainUser.permission === 'admin' || mainUser.permission === 'moderator') {
                            // Look for user in database
                            User.findOne({ _id: editUser }, function(err, user) {
                                if (err) {
                                    // Create an e-mail object that contains the error. Set to automatically send it to myself for troubleshooting.
                                    var email = {
                                        from: 'MEAN Stack Staff, cruiserweights@zoho.com',
                                        to: 'gugui3z24@gmail.com',
                                        subject: 'Error Logged',
                                        text: 'The following error has been reported in the MEAN Stack Application: ' + err,
                                        html: 'The following error has been reported in the MEAN Stack Application:<br><br>' + err
                                    };
                                    // Function to send e-mail to myself
                                    client.sendMail(email, function(err, info) {
                                        if (err) {
                                            console.log(err); // If error with sending e-mail, log to console/terminal
                                        } else {
                                            console.log(info); // Log success message to console if sent
                                            console.log(user.email); // Display e-mail that it was sent to
                                        }
                                    });
                                    res.json({ success: false, message: 'Something went wrong. This error has been logged and will be addressed by our staff. We apologize for this inconvenience!' });
                                } else {
                                    // Check if user is in database
                                    if (!user) {
                                        res.json({ success: false, message: 'No user found' }); // Return error
                                    } else {
                                        user.name = newName; // Assign new name to user in database
                                        // Save changes
                                        user.save(function(err) {
                                            if (err) {
                                                console.log(err); // Log any errors to the console
                                            } else {
                                                res.json({ success: true, message: 'Name has been updated!' }); // Return success message
                                            }
                                        });
                                    }
                                }
                            });
                        } else {
                            res.json({ success: false, message: 'Insufficient Permissions' }); // Return error
                        }
                    }


                    if (newTest1) {
                      // Check if person making changes has appropriate access
                      if (mainUser.permission === 'admin') {
                          // Look for user in database
                          User.findOne({ _id: editUser }, function(err, user) {
                              if (err) {
                                  res.json({ success: false, message: 'Something went wrong. This error has been logged and will be addressed by our staff. We apologize for this inconvenience!' });
                              } else {
                                  // Check if user is in database
                                  if (!user) {
                                      res.json({ success: false, message: 'No user found' }); // Return error
                                  } else {

-> (this is where i think the problem is) if (Array.isArray(newTest1)) {
                                          var index = newTest1[2];
   -> this doesn't work                      user.test1[0].push(newTest1);
                                              //user.test1.splice(index, 0, newTest1)
                                        } else {
                                          var testet1 = newTest1.split(" ");
                                          user.test1.push(testet1); // Assign new name to user in database
                                        }



                                          // Save changes
                                          user.save(function(err) {
                                              if (err) {
                                                  console.log(err); // Log any errors to the console
                                              } else {
                                                  res.json({ success: true, message: 'Name has been updated!' }); // Return success message
                                              }
                                          });
                                  }
                              }
                          });
                      } else {
                          res.json({ success: false, message: 'Insufficient Permissions' }); // Return error
                      }
                    }

在操作之前,需要确保user.test1[0]值存在。 因此,如果您的user.test1

 var user = {}; user.test = []; var arrayToPush = [1,2,3]; try { user.test[0].push(arrayToPush) } catch (err) { document.getElementById('out').innerHTML += err } var user2 ={} user2.test=[]; try { user2.test.push(arrayToPush) user2.test.push(arrayToPush) } catch (err) { document.getElementById('out2').innerHTML += err } document.getElementById('out2').innerHTML += user2.test[0] 
 <div id="out"></div> <br> <div id="out2"></div> 

数组根本没有任何值,您什么也不能推入。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM