处女作Nodejs Markdown doc文档
处女作Nodejs Markdown doc文档
由于工作较忙,一直没有认真学习nodeJS。这次公司网站改版很大,老大要整文档了!以前我们没有写过文档,写文档总得要个平台吧,于想开始想用wordpress搭个,突然又想起来何不用nodeJS写一个,这样还可以学习一下node。搞了一周多,终于做出来了,公司同事已经在上面写文档了。由于以前的入门指南代码比较老,开始用的mogodb-native,后来照着cnodejs论坛改成了mongoose,看了论坛的源码学了不少,以后楼猪也要混cnodejs论坛了!这是我来论坛的第一贴! 源码: https://github.com/bobby169/Markdown-doc
处女作Nodejs Markdown doc文档
由于工作较忙,我一直没有机会深入学习Node.js。最近,公司决定对网站进行一次大规模的改版,老大要求我们整一套文档系统。我们之前从未写过文档,但总得有一个平台来支持这些文档。最初我考虑使用WordPress搭建一个博客系统,但随后想到,为什么不直接使用Node.js来开发一个文档系统呢?这不仅能满足我们的需求,还能让我有机会学习和实践Node.js。
于是,我花了一周多的时间,最终完成了一个简单的Markdown文档管理系统。目前,公司的同事们已经开始在这个平台上撰写文档了。
在项目初期,我使用的是较老的mongodb-native
库来操作MongoDB数据库。但在看到CNodeJS论坛的源码后,我决定将其改为使用mongoose
库。通过研究CNodeJS论坛的源码,我学到了很多新的知识,并决定以后多关注这个论坛,以获得更多的灵感和技术支持。
以下是我用Node.js实现的一个简单示例,展示了如何创建一个Markdown文档管理系统的基本功能。这个示例包括创建、读取和更新文档的功能。
示例代码
首先,确保你已经安装了必要的依赖:
npm install express mongoose marked body-parser
接下来,创建一个基本的Express应用,并配置Mongoose连接到MongoDB:
const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
const marked = require('marked');
// 连接MongoDB
mongoose.connect('mongodb://localhost/markdown-docs', { useNewUrlParser: true, useUnifiedTopology: true });
// 定义文档模型
const docSchema = new mongoose.Schema({
title: String,
content: String
});
const Doc = mongoose.model('Doc', docSchema);
// 创建Express应用
const app = express();
app.use(bodyParser.json());
// 创建新文档
app.post('/docs', async (req, res) => {
const { title, content } = req.body;
const markdownContent = marked(content);
const newDoc = new Doc({ title, content: markdownContent });
await newDoc.save();
res.status(201).send(newDoc);
});
// 获取所有文档
app.get('/docs', async (req, res) => {
const docs = await Doc.find({});
res.send(docs);
});
// 更新文档
app.put('/docs/:id', async (req, res) => {
const { id } = req.params;
const { title, content } = req.body;
const markdownContent = marked(content);
const updatedDoc = await Doc.findByIdAndUpdate(id, { title, content: markdownContent }, { new: true });
res.send(updatedDoc);
});
// 启动服务器
app.listen(3000, () => console.log('Server running on port 3000'));
这段代码展示了如何使用Express框架创建一个简单的Web服务,处理创建、读取和更新Markdown文档的请求。你可以将此代码保存为app.js
文件,并运行它来启动你的文档管理系统。
希望这个示例对你有所帮助!更多详细的代码和功能可以在我的GitHub仓库中查看:Markdown-doc
这是我第一次在CNodeJS论坛发帖,希望能得到大家的支持和反馈!
无人回复,自己顶!
给你顶一顶。。
我来顶一下。加油加油
根据你提供的帖子内容,用户似乎是在介绍自己使用 Node.js 开发的一个 Markdown 文档管理系统,并分享了项目的源码链接。为了帮助理解这个项目,我们可以简要介绍如何使用 Node.js 和一些常见的库来实现一个简单的 Markdown 文档管理系统。
示例代码:基本的 Markdown 文档管理系统
假设我们要创建一个简单的应用,可以上传 Markdown 文件并将其渲染成 HTML 展示。
安装依赖
首先安装必要的依赖包:
npm install express mongoose marked
基本服务器设置
创建一个 server.js
文件,设置基本的 Express 服务器:
const express = require('express');
const mongoose = require('mongoose');
const marked = require('marked');
const app = express();
// 连接 MongoDB 数据库
mongoose.connect('mongodb://localhost:27017/markdown-docs', { useNewUrlParser: true, useUnifiedTopology: true });
// 定义 Markdown 文档模型
const DocumentSchema = new mongoose.Schema({
title: String,
content: String
});
const Document = mongoose.model('Document', DocumentSchema);
app.use(express.static('public'));
app.set('view engine', 'ejs');
app.get('/', async (req, res) => {
const docs = await Document.find();
res.render('index', { docs });
});
app.post('/upload', async (req, res) => {
const { title, markdown } = req.body;
const htmlContent = marked(markdown);
const document = new Document({ title, content: htmlContent });
await document.save();
res.redirect('/');
});
app.listen(3000, () => console.log('Server running on port 3000'));
模板文件
创建一个 EJS 模板文件 views/index.ejs
来展示文档列表:
<!DOCTYPE html>
<html>
<head>
<title>Markdown Docs</title>
</head>
<body>
<h1>Markdown Docs</h1>
<form action="/upload" method="POST">
<input type="text" name="title" placeholder="Title" required>
<textarea name="markdown" rows="10" cols="50" placeholder="Markdown Content" required></textarea>
<button type="submit">Upload</button>
</form>
<% docs.forEach(doc => { %>
<div>
<h2><%= doc.title %></h2>
<div><%- doc.content %></div>
</div>
<% }) %>
</body>
</html>
解释
- Express:用于搭建 Web 服务。
- Mongoose:用来操作 MongoDB 数据库。
- marked:将 Markdown 文本转换为 HTML。
- EJS:用于模板引擎,方便地生成 HTML 页面。
这个例子展示了一个非常基础的 Markdown 文档管理系统,用户可以通过表单上传 Markdown 文档,并且系统会自动将其转换为 HTML 显示。你可以在此基础上添加更多的功能,如编辑、删除文档等。