处女作Nodejs Markdown doc文档

处女作Nodejs Markdown doc文档

由于工作较忙,一直没有认真学习nodeJS。这次公司网站改版很大,老大要整文档了!以前我们没有写过文档,写文档总得要个平台吧,于想开始想用wordpress搭个,突然又想起来何不用nodeJS写一个,这样还可以学习一下node。搞了一周多,终于做出来了,公司同事已经在上面写文档了。由于以前的入门指南代码比较老,开始用的mogodb-native,后来照着cnodejs论坛改成了mongoose,看了论坛的源码学了不少,以后楼猪也要混cnodejs论坛了!这是我来论坛的第一贴! 源码https://github.com/bobby169/Markdown-doc


5 回复

处女作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 显示。你可以在此基础上添加更多的功能,如编辑、删除文档等。

回到顶部