2016-05-16 66 views
0

我已经查看了很多类似的问题,但是我仍然无法解决我的问题。NodeJS expressJS通过multer和护照上传并保存文件到MongoDB

我有一个注册帖子请求,我通过护照拦截,但我也需要获取上传的个人资料照片,以便将其保存到数据库中。

routes.js

app.post('/signup', passport.authenticate('local-signup', { 
    successRedirect: '/home', 
    failureRedirect: '/signup', 
    failureFlash: true 
})); 

passport.js

passport.use('local-signup', new LocalStrategy({ 
    passReqToCallback: true 
}, function(req, username, password, done) { 

    // logic and add new user 
})); 

注册表格(HTML)

<form class="signup-container" action="/signup" method="post"> 
    <input class="signup-container-input" placeholder="Username" name="username" /> 
    <input class="signup-container-input" placeholder="Email ID" name="email" /> 
    <input class="signup-container-input" type="password" placeholder="Password" name="password" /> 
    <input class="signup-container-input" type="password" placeholder="Re-enter password" name="reEnterPassword" /> 
    <input class="signup-container-input" placeholder="Full name" name="name" /> 
    <div class="signup-container-image"> 
    <img class="signup-container-image-image" id="profile-photo-img" src="http://www.ivonly.com/assets/images/user-image.jpg" /> 
    <div class="signup-container-image-uploader"> 
     <span id="profile-photo-label">Choose photo</span> 
     <input class="upload" type="file" name="profilePhoto" id="profile-photo" onchange="getPhoto(this);" /> 
    </div> 
    </div> 
    <div class="signup-footer"> 
    <button type="submit" class="signup-footer-signup">Sign up</button> 
    <div class="signup-footer-login"> 
      Already a user? 
     <a href="/login">Login</a> 
    </div> 
    </div> 
</form> 

我想将图像保存到我的收藏的MongoDB。我已经阅读了Multer和GridFS,但是有谁可以解释我应该如何使用它?

回答

0

PLS有look

我会建议你?当用户在表单上浏览图像时,立即上传该文件并从服务器获取图像名称,然后填写表单中的图像字段,这是最好的解决方案,因此您只能将图像名称保存到mongodb然后访问它。