Untitled

 avatar
unknown
plain_text
4 years ago
4.9 kB
7
Indexable
const express = require('express');
const bodyParser = require('body-parser');
const app  =express();
const crypto= require('crypto');
const multer=require('multer');
const {GridFsStorage}=require('multer-gridfs-storage');
const Grid=require('gridfs-stream');
const methodOverride = require('method-override');
const mongoose =require('mongoose')
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(methodOverride('_method'));
const path =require('path');
//const db= require("./db");
const user =require("./models/user");
const uri= 'mongodb+srv://user:dbUser@cluster0.um1b0.mongodb.net/cms?retryWrites=true&w=majority'
let gfs;

mongoose.connect(uri,{
  useNewUrlParser: true,
    useUnifiedTopology: true,
  
    
  }).then(()=> console.log('db is connected')).catch((err)=> console.error('Error'));
  const a=mongoose.connection;

  a.once('open',()=>{
    gfs=Grid(a.db,mongoose.mongo);
    gfs.collection('uploads');
  });
  const storage = new GridFsStorage({
    url:uri,
    file:(req,file)=>{
      return new Promise((resolve,reject)=>{
     crypto.randomBytes(16,(err,buf)=>{
       if(err){
         return reject(err);
       }
     })
        
        const filename= file.originalname;
        const fileInfo={
          filename:filename,
          bucketName:'uploads'
        };
        resolve(fileInfo);
   
    })}}
  )
const upload=multer({storage});
let files
app.get('/test',(req,res)=>{
  //res.sendFile(__dirname +"test.html",);
  res.json({title:"api",message:"root"});
})
app.get('/render',(req,res)=>{
  res.sendFile(path.join(__dirname,'test.html'));
})
//Display all files
app.use('/files',(req,res,next)=>{
  gfs.files.find().toArray((err,files)=>{
const a =JSON.stringify(files)
const t=JSON.parse(a)
console.log(t[0].filename)
      res.json(t)
  

  
  })
  
})

    app.get('/',(req,res)=>{
        res.sendFile(path.join(__dirname,'index.html'));
    });


    app.get('/register',(req,res)=>{
        res.sendFile(path.join(__dirname,'pass.html'));
    });
    app.get('/user',(req,res)=>{
      res.sendFile(path.join(__dirname,'user.html'));
  });
    app.post('/user',(req,res)=>{
      gfs.files.find().toArray((err,files)=>{
  
   
  
        req.body.col1=files[0].filename;
       console.log(req.body.col1);
       
     res.redirect('/user')})
  });
   app.post("/user", upload.single('file'),(req, res, next) => { 
    // req.body.col1="a"
  res.redirect('/user');
  });


   app.post("/submit", (req, res, next) => {

    if(req.body.password==" "&& req.body.name==" "){
        return res.status(500).json({
           message:"Make sure there isn't any empty field"
          });
    }
   else if(req.body.password==""|| req.body.name==""){
        return res.status(500).json({
           message:"Make sure there isn't any empty field"
          });
    }
  else{
        user.find({type:req.body.type ,name:req.body.name,pass:req.body.password}).exec()
        .then(user=> {
            if (user.length > 0 && req.body.type=='admin'  ) {
              res.redirect('/admin')
               
              } 
            else if (user.length > 0 && req.body.type=='user'  ) {
             
               res.redirect('/user')
             
             }
            else {
                 
                  res.sendFile(path.join(__dirname,'msg.html'))
                    }})
            .catch(err => {
              console.log(err);
              res.status(500).json({
                error: err
              });}); } });

 app.post("/changepassword", (req, res, next) => {

               if(req.body.oldP==""|| req.body.username==""|| req.body.email==""||req.body.newP==""){
                       return res.status(500).json({
                          message:"Make sure there isn't any empty field"
                         });
                   }
                   else{
                   user.findOneAndUpdate({type:req.body.type,email:req.body.email,name:req.body.username,pass:req.body.oldP},{pass:req.body.newP}).exec()
                       .then(doc=> {if(!doc){
                        return res.status(500).json({
                          message:"The information entered is not correct!",
                       }); 
                       }
                        return res.status(500).json({
                          message:"Password changed successfully!",
                       }); 
                       }).catch(err => {
                             console.log(err);
                             res.status(500).json({
                               error: err
                             });}); } });   
                                      
   app.listen(3000)
Editor is loading...