在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → Node.js博客系统源码下载

Node.js博客系统源码下载

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:0.30M
  • 下载次数:48
  • 浏览次数:949
  • 发布时间:2015-07-02
  • 实例类别:一般编程问题
  • 发 布 人:yuuko
  • 文件格式:.zip
  • 所需积分:1
 相关标签: 博客 系统 YuukoBlog mongodb

实例介绍

【实例简介】

基于Node.js与MongoDB的博客系统。

【实例截图】

【核心代码】


'use strict'
var fs = require('fs');
var express = require('express');
var router = express.Router();
var init = require('../middlewares/init');

router.get('/', init.authorize, function (req, res, next) {
    res.render('admin/index', { config: config });
});

router.post('/', init.authorize, function (req, res, next) {
    config.username = req.body.username;
    if (req.body.password != "")
        config.password = req.body.password;
    config.site = req.body.site;
    config.description = req.body.description;
    config.disqus = req.body.disqus;
    config.avatarUrl = req.body.avatarUrl;
    config.aboutUrl = req.body.aboutUrl;
    fs.writeFileSync(__dirname   '/../config.json', JSON.stringify(config));
    res.send('true');
});

router.get('/login', init.guestOnly, function (req, res, next) {
    res.render('admin/login');
});

router.post('/login', init.guestOnly, function (req, res, next) {
    if (req.body.username === config.username && req.body.password === config.password) {
        req.session.admin = true;
        res.redirect('/admin');
    } else {
        res.render('admin/login');
    }
});

router.post('/post/edit', init.authorize, function (req, res, next) {
    let summary = '';
    let tmp = req.body.content.split('\n');
    if(tmp.length > 16)
    {
        for(let i = 0; i < 16; i  )
            summary  = tmp[i]   '\n';
        summary  = '\r\n[Read More »](/post/'   req.body.newUrl   ')';
    }
    else
    {
        summary = req.body.content;
    }
    let opt = {
        title: req.body.title,
        url: req.body.newUrl,
        content: req.body.content,
        tags: req.body.tags.trim().split(' '),
        summary: summary,
        isPage: req.body.isPage
    };
    if (req.body.catalog) {
        opt.catalog = req.body.catalog;
    }
    db.posts.update({ url: req.body.url }, opt).exec();
    res.send(res.locals.xss.process(res.locals.md(req.body.content)));
});

router.post('/post/delete', init.authorize, function (req, res, next) {
    db.posts.remove({ url: req.body.url })
        .exec()
        .then(function () {
            res.redirect('/');
        })
        .then(null, next);
});

router.post('/post/new', init.authorize, function (req, res, next) {
    let post = new db.posts();
    post.title = 'Untitled Post';
    post.time = Date.now();
    post.content = '';
    post.summary = '';
    post.tags = [];
    post.url = Math.random().toString(36).replace(/[^a-z] /g, '');
    post.isPage = false;
    post.save(function (err, post) {
        res.redirect('/post/'   post.url);
    });
});

router.post('/logout', init.authorize, function (req, res, next) {
    delete req.session.admin;
    res.redirect('/');
});

router.get('/catalog', init.authorize, function (req, res, next) {
    res.render('admin/catalog');
});

router.post('/catalog/edit', init.authorize, function (req, res, next) {
    db.catalogs.update({ _id: req.body.id }, {
        title: req.body.title,
        title_zh: req.body.title_zh,
        order: req.body.order
    }).exec();
    res.send('true');
});

router.post('/catalog/delete', init.authorize, function (req, res, next) {
    db.catalogs.remove({ _id: req.body.id }).exec();
    res.send('true');
});

router.post('/catalog/new', init.authorize, function (req, res, next) {
    let catalog = new db.catalogs();
    catalog.title = 'new-catalog';
    catalog.title_zh = '新分类';
    catalog.order = 999;
    catalog.save();
    res.redirect('/admin/catalog');
});

module.exports = router;


网友评论

第 1 楼 祝小白 发表于: 2018-07-04 19:45 46
楼主,你这个怎么运行啊,我运行老出错

支持(0) 盖楼(回复)

第 2 楼 祝小白 发表于: 2018-07-04 19:45 54
求回复

支持(0) 盖楼(回复)

第 3 楼 祝小白 发表于: 2018-07-04 19:46 06
急急急

支持(0) 盖楼(回复)

发表评论

(您的评论需要经过审核才能显示)

查看所有3条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警