我看过许多类似的问题,但我仍然无法解决问题。
我有一个注册帖子请求,我通过护照拦截,但我还需要上传个人资料照片,以便将其保存到数据库。
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 :(得分:0)
请注明look
我会建议你什么?当用户在表单上浏览图像时,立即上传该文件并从服务器返回图像名称,然后填写表单中的图像字段,这是最佳解决方案,因此您只能将图像名称保存到mongodb然后访问它。