最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

使用带有MongoDB的Node.Js存储图像时遇到问题

网站源码admin13浏览0评论

使用带有MongoDB的Node.Js存储图像时遇到问题

使用带有MongoDB的Node.Js存储图像时遇到问题

我希望你们一切都很好。

我的代码有问题,试图存储将在用户注册期间由用户上传的图像。

然后,我要在./uploads文件夹中查看用户已上传的图像。

我已注释掉破坏我网站的代码。我在网上关注了一些示例,但没有运气。

App.js

    var express     = require("express"),
    app         = express(),
    bodyParser  = require("body-parser"),
    mongoose    = require("mongoose"),
    flash       = require("connect-flash"),
    passport    = require("passport"),
    multer      = require("multer");
    upload      = multer({dest: './uploads/'});
    fs          = require('fs');
    LocalStrategy = require("passport-local"),
    methodOverride = require("method-override"),
    Pet  = require("./models/pet"),
    User        = require("./models/user"),
    Schema   = mongoose.Schema,
    seedDB       = require("./seeds")

const port = process.env.PORT || 27017;

//requiring routes
var petsRoutes = require("./routes/pets"),
    indexRoutes      = require("./routes/index")


mongoose.connect("mongodb://localhost:27017/db", {
    useNewUrlParser: true
});

app.use(bodyParser.urlencoded({extended: true}));
app.set("view engine", "ejs");
app.use(express.static(__dirname + "/public"));
app.use(methodOverride("_method"));
app.use(flash());
// seedDB(); //seeding

//Passport
app.use(require("express-session")({
    secret: "pets",
    resave: false,
    saveUninitialized: false

}));

app.use(passport.initialize());
app.use(passport.session());
passport.use(new LocalStrategy(User.authenticate()));
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());

app.use(function(req, res, next){
   res.locals.currentUser = req.user;
   res.locals.error = req.flash("error");
   res.locals.success = req.flash("success");
   next();
});

app.use("/", indexRoutes);
app.use("/pets", petsRoutes);

app.listen(port, () => {
    console.log(`Server is up on port ${port}`);
});


// app.use(multer({
//     destination: function (req, file, cb) {
//         cb(null, './upload');
//     },
//     filename: function (req, file, cb) {
//         cb(null, file.originalname);
//     }
// })),

// app.post(‘/register’, function (req, res) {
//     var newUser = new User();
//     userSchema.profileimage.data = fs.readFileSync(req.files.userPhoto.path)
//     userSchema.profileimage.contentType = ‘image / jpg’;
//     userSchema.save();
// });

User.js

    var mongoose = require("mongoose");
var passportLocalMongoose = require("passport-local-mongoose");

var UserSchema = new mongoose.Schema({
    username: String,
    email: String,
    profileimage: {data: Buffer, contentType: String},
    password: String
});

UserSchema.plugin(passportLocalMongoose)

// app.use(multer({
//     dest: ‘./uploads/ ’,
//     rename: function (fieldname, filename) {
//         return filename;
//     },
// }));

module.exports = mongoose.model("User", UserSchema);

Index.Js

var express = require("express");
var router  = express.Router();
var passport = require("passport");
var User = require("../models/user");

//root route
router.get("/", function(req, res){
    res.render("landing");
});

// show register form
router.get("/register", function(req, res){
   res.render("register"); 
});

// show contact page
router.get("/contact", function (req, res) {
    res.render("contact");
});

// show about page
router.get("/about", function (req, res) {
    res.render("about");
});

//handle sign up logic
router.post("/register", function(req, res){
    var username = req.body.username;
    var email = req.body.email;
    var profileimage = req.body.profileimage;

    var newUser = new User({username: username, email: email, profileimage: profileimage});
    User.register(newUser, req.body.password, function(err, user){
        if(err){
            req.flash("error", err.message);
            return res.render("register");
        }
        passport.authenticate("local")(req, res, function(){
           req.flash("success", "Come adopt a Pet " + user.username);
           res.redirect("/pets"); 
        });
    });
});

//show login form
router.get("/login", function(req, res){
   res.render("login"); 
});

//handling login logic
router.post("/login", passport.authenticate("local", 
    {
        successRedirect: "/pets",
        failureRedirect: "/login"
    }), function(req, res){
});

// logout route
router.get("/logout", function(req, res){
   req.logout();
   req.flash("success", "Logged you out!");
   res.redirect("/pets");
});



module.exports = router;

registration.ejs

<% include ./partials/header %> 

<div class="container"></div>
    <form action="/register" method="POST" class="form-signin" enctype="multipart/form-data">
        <!-- username -->
        <label for="inputUsername" class="sr-only">Username</label>
        <input type="text" id="inputUsername" class="form-control" placeholder="Org Name or Personal Name" name="username" required>
        <!-- email  -->
        <input type="email" id="inputEmail" class="form-control" placeholder="Email" name="email" required>
        <!-- password  -->
        <label for="inputPassword" class="sr-only">Password</label>
        <input type="password" id="inputPassword" class="form-control" placeholder="Password" name="password" required>
        <p>Org - Upload Legal Documentation</p>
        <input type="file" id="inputImage" class="form-control" name="profileimage">
        <!-- submit  -->
        <button class="btn btn-lg btn-primary btn-block" type="submit" name="submit" , value="signup">Sign up</button>
    </form>
</div>
<% include ./partials/footer %> 
回答如下:

const multer = require('multer');

常量存储= multer.diskStorage({

destination: function(req, file, cb) {




  cb(null, './uploads/');},




filename: function(req, file, cb) {




    cb(null, Date.now() + file.originalname);}});
发布评论

评论列表(0)

  1. 暂无评论