| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- const Blog = require("../models/blog.js");
- const Uploader = require("../models/uploader.js");
- const createId = require("./createId.js");
- module.exports = {
- /*
- POST: create a new blog
- req.body = {
- uploader: String (uploader id)
- password: String
- title: String
- tags: String
- blog: String
- }
- req.files = {
- thumbnail: File
- }
- redirect to home
- */
- create: function(req, res){
- Uploader.findOne({_id: req.body.uploader})
- .then((uploader)=>{
- if(uploader === "none") throw "uploader";
- if(req.body.password !== uploader.password) throw "pass";
- let fileString = `/thumbNails/${createId(25)}`;
- req.files.thumbnail.mv(`${__dirname}/..${fileString}`);
- let blog = new Blog({
- writer: uploader._id,
- title: req.body.title,
- tags: req.body.tags.split(","),
- thumbnail: fileString,
- article: req.body.blog
- });
- return blog.save();
- })
- .then((blog)=>{
- return res.redirect("/");
- })
- .catch((err)=>{});
- },
- /*
- GET: get a list of all blogs
- response = [Blog]
- */
- getBlogs: function(req, res){
- Blog.aggregate([{$project: {article: 0}}])
- .then((blogs)=>{
- return res.json(blogs);
- })
- .catch((err)=>{
- return res.json("ERROR: could not retrieve blog data");
- });
- },
- /*
- GET: gets a single blog
- req.params.id = String (blog id)
- response = Blog
- */
- getBlog: function(req, res){
- Blog.findOne({_id: req.params.id})
- .populate("writer")
- .then((blog)=>{
- return res.json(blog);
- })
- .catch((err)=>{
- return res.json("Error: unable to retrieve the blog");
- });
- }
- }
|