-
Notifications
You must be signed in to change notification settings - Fork 0
/
articleController.js
46 lines (40 loc) · 1.29 KB
/
articleController.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
const Article = require('../models/Article');
const jsdom = require("jsdom");
const { JSDOM } = jsdom;
const Entities = require('html-entities').XmlEntities;
let ArticleController = {
addArticle: function (title, author, tags, content, picture) {
entities = new Entities();
const dom = new JSDOM(entities.decode(content));
let articleData = new Article({
author: author,
title: title,
content: content,
images: picture,
tagList: tags,
created_at: new Date(),
shavedContent:dom.window.document.querySelector("p").textContent
});
articleData.save();
},
findArticleById: function (id) {
return queryPromise = Article.find({_id: id}).exec();
},
findAllArticlesByTag: function (tag) {
return Article.find({tagList: {"$in": ["" + tag]}}).sort({'_id': 1}).exec();
},
findAllArticles: function () {
return Article.find().sort({'_id': 1}).exec();
},
removeArticle : function (id,res) {
"use strict";
Article.findByIdAndRemove(id,function (err) {
if(err) console.log('cos');
else {
res.redirect('/admin');
}
});
}
}
//exports
module.exports = ArticleController;