Untitled
unknown
plain_text
4 years ago
4.9 kB
12
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...