ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

使用nodejs开发一个markdown文档管理小系统

2019-09-26 21:03:49  阅读:156  来源: 互联网

标签:function markdown nodejs res app req fs 文档 var


后台api部分的写法
···

var fs = require('fs')
var path = require('path')
var basePath = 'docs'
let markdown = require('markdown-it')
var md = new markdown({
html: true,
langPrefix: 'code-',
})
function getDirsInDocsFolder() {
var paths = fs.readdirSync(basePath)
return paths
}

function getMdsInFolder(folderName) {
let paths = fs.readdirSync(path.join(basePath, folderName))
return paths
}

function writeMdFile(fileName, folderPath, content) {
fs.writeFile(path.join(basePath, folderPath, fileName), content, function (err) {
console.error(err)
})
}

function readMdFileToHtml(fileName, folderPath) {
var content = fs.readFileSync(path.join(basePath, folderPath, fileName), 'utf-8')
var html = md.render(content)
return html
}

function main() {
console.log('Starting web server')
var express = require('express')
var app = express()
app.use(express.static('.'))

const bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

app.get('/', function (req, res, next) {
})


app.get('/cates', function (req, res, next) {
    var list = getDirsInDocsFolder()
    res.send(list)
})

app.get('/mds', function (req, res, next) {
    var folderName = req.query.cate
    if (!folderName) res.send([])
    var mds = getMdsInFolder(folderName)
    res.send(mds)
})


app.get('/md', function (req, res, next) {
    let cate = req.query.cate
    let fileName = req.query.name
    var html = readMdFileToHtml(`${fileName}.md`, cate)
    res.send(html)
})

app.post('/md', function (req, res, next) {
    var data = req.body
    res.send(data)

})


var server = app.listen(8081, function () {
    var host = server.address().address
    var port = server.address().port
    console.log('Listening on http://%s:%s', host, port)

})

}
main();
···

标签:function,markdown,nodejs,res,app,req,fs,文档,var
来源: https://www.cnblogs.com/hualiu0/p/11594414.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有