使用Javascript/Ajax发送图像并将其保存到MongoDB

使用Javascript/Ajax发送图像并将其保存到MongoDB,javascript,ajax,node.js,mongodb,mongoose,Javascript,Ajax,Node.js,Mongodb,Mongoose,我正在尝试使用Ajax保存一个配置文件来发送数据。我可以在没有图像时保存,但问题是配置文件有图像,我希望使用与发送其他信息相同的Ajax函数发送图像。如果我不这样做,我必须创建另一个带有“PUT”请求的不同Ajax函数来修改文档并将图像保存在其中 是否有办法将图像作为Json和其他信息(如姓名和电子邮件)一起发送? 这是我的HTML: <input class="teamName" type="text" id="teamName" name="teamName" size="25" m

我正在尝试使用Ajax保存一个配置文件来发送数据。我可以在没有图像时保存,但问题是配置文件有图像,我希望使用与发送其他信息相同的Ajax函数发送图像。如果我不这样做,我必须创建另一个带有“PUT”请求的不同Ajax函数来修改文档并将图像保存在其中

是否有办法将图像作为Json和其他信息(如姓名和电子邮件)一起发送?

这是我的HTML:

<input class="teamName" type="text" id="teamName" name="teamName"  size="25" maxlength="60" value="Team Name">
    <input class="companyName" type="text" id="companyName"  name="companyName"  size="25" maxlength= "60" value="Company Name">
    <input class="teamDescription"  type="text" id="teamDescription"  name="teamDescription"    size="25"    maxlength= "60" value="Team Description">
    <input class= "email" type="text" id="email"  name="email"  size="25"   maxlength= "60" value="emails">   
    <input class="charityID"  type="text" id="charityID" name="charityID"  size ="25"      maxlength="60">
     <input class="upload-area" id="upload-area" type="file" size="150">
这就是我在NodeJs中接收数据并保存在数据库中的方式:

router.post('/', function (req, res){

        //TEAM INFO
       var sessionID = req.query.sessionID  // to get variable form URL is "req.query" 
       var team = req.body;
       var teamName = team.teamName;
       var teamDescription = team.teamDescription;
       var charityID = team.charityID;
       var teamLink = team.teamLink;
       var image = team.profileImage;

      sessionOBJ.isAuthorized(sessionID, function(sessionID){ 

          log.d("Checking session to save team", sessionID);
           var adminID = sessionID.userID; 

           var newTeam = new teamModel({
                teamName: teamName,
                teamDescription: teamDescription,
                teamAdminID: adminID,
                teamLink: teamLink,
                charityID: charityID,
                image: {
                  data:fs.readFileSync(image),
                  contentType:image.type
                }
              });

           newTeam.save(function(err, team){
           if(err) return console.error(err);
           res.send({"status" : "Created", "teamID" : team._id, "teamAdminID":team.teamAdminID });
                log.d("Created  Team ID",  team._id)
                log.d("XXXXXXX XXXXXX XXXXXXX Team Saved inside save method",team);
           });//end save new team 

      });//end is Authorized


}); 
上面的代码不起作用

如何使用javascript和Ajax发送图像文件?我可以使用相同的Ajax请求来实现这一点吗

提前谢谢

router.post('/', function (req, res){

        //TEAM INFO
       var sessionID = req.query.sessionID  // to get variable form URL is "req.query" 
       var team = req.body;
       var teamName = team.teamName;
       var teamDescription = team.teamDescription;
       var charityID = team.charityID;
       var teamLink = team.teamLink;
       var image = team.profileImage;

      sessionOBJ.isAuthorized(sessionID, function(sessionID){ 

          log.d("Checking session to save team", sessionID);
           var adminID = sessionID.userID; 

           var newTeam = new teamModel({
                teamName: teamName,
                teamDescription: teamDescription,
                teamAdminID: adminID,
                teamLink: teamLink,
                charityID: charityID,
                image: {
                  data:fs.readFileSync(image),
                  contentType:image.type
                }
              });

           newTeam.save(function(err, team){
           if(err) return console.error(err);
           res.send({"status" : "Created", "teamID" : team._id, "teamAdminID":team.teamAdminID });
                log.d("Created  Team ID",  team._id)
                log.d("XXXXXXX XXXXXX XXXXXXX Team Saved inside save method",team);
           });//end save new team 

      });//end is Authorized


});