• Node.js个人博客


    1. 项目介绍

    项目演示地址:https://ximingx.org.cn/

    项目github:https://github.com/ximingx/blog

    想象一下,你是一位热爱写作的程序员小王。每天,你都有很多新的想法和技术心得想要分享。但是,管理你的博客网站却成了一个让你头疼的问题。

    周一早晨,你坐在电脑前,准备写一篇关于最新学到的编程技巧的博客文章。然而,你突然想到还要登录到博客管理后台,配置文章类别,调整发布时间,上传图片,等等。这些繁琐的步骤让你感到沮丧,你意识到要花费至少半小时来处理这些技术细节,而不是专注于写作本身。

    你心想:“要是我能只管写作,其他的事情都自动完成就好了。我只想用Markdown写下我的想法,然后它们就神奇地出现在我的博客上,那该多好啊!”

    这时这个博客系统允许你只需在本地编写Markdown文档,就能自动将内容上传到服务器并发布到你的博客上。有了这个工具,你可以随时随地打开你喜欢的文本编辑器,用Markdown格式写下你的想法。完成后,你只需保存文件,剩下的一切都会自动完成。这样,你就可以将更多的时间和精力投入到真正重要的事情上:分享你的知识和经验。

    1. 使用案例

    如下是项目目录,你创建一些md文档与目录

    posts
    ├── assets
    │   └── image-20240626085241624.png
    ├── 公务员
    │   ├── 常识
    │   │   └── 法律
    │   │       ├── 公务员法.md
    │   │       ├── 刑法.md
    │   │       ├── 劳动合同法.md
    │   │       ├── 劳动法.md
    │   │       ├── 宪法.md
    │   │       ├── 民法.md
    │   │       └── 行政法.md
    │   └── 言语
    │       └── 词义解析.md
    └── 博客
        └── 博客搭建.md
    

    博客文章存放在 blog/posts 目录下,posts 目录下的每一个文件夹即为分类,文件夹下的 .md 文件即为文章。

    • 文件夹代表文章的标签
    • 文件的名字为文章标题
    • 文件的修改时间为归档时间
    • posts下的assets存放md文档的照片

    首页面显示:

    在这里插入图片描述

    显示的标签:

    在这里插入图片描述

    显示的归档:

    在这里插入图片描述

    文章样式:

    在这里插入图片描述

    修改项目根目录下的README.md即可直接修改关于页面。

    这似乎是一个很平常的博客系统,但是我们可以做一些配置,同步到我们的服务器上,让我们不需要做额外的操作,它自动完成文件的上传。

    2. 项目基本配置

    项目对新手很友好,只需要修改config.js中配置,即可直接编写md文档使用,在设置ssh后本地posts文件夹中的文件会同步到配置的服务器。

    // config.js
    const path = require('path');
    
    module.exports = {
        ---
        ssl: {
            // 本地生成ssl证书,测试
            // openssl req -x509 -newkey rsa:4096 -keyout private.key -out certificate.crt -days 365
            darwin: {
                key: './ssl/private.key',
                cert: './ssl/certificate.crt'
            },
            // 服务器上的ssl证书
            linux: {
                key: '/etc/nginx/ssl/ximingx.org.cn.key',
                cert: '/etc/nginx/ssl/ximingx.org.cn.crt'
            }
        },
        ssh: {
            localPosts: path.join(__dirname, './posts'),
            // 服务器ip地址
            remoteHost: '0.0.0.0', //不设置,默认不启动服务器
            user: 'root',
            remotePath: '/root/blog/posts',
            // 需要与服务器配置好ssh免密登录
            privateKey: '/Users/ximingx/.ssh/id_rsa'
        },
        ---
    };
    

    2. 博客的搭建

    1. 本地部署

    打开本地终端,执行以下命令:

    git clone https://github.com/ximingx/blog.git
    cd blog
    npm install
    npm run dev
    

    启动成功后,打开浏览器,访问 https://localhost 即可查看博客。

    2. 服务器部署

    CentOS系统上安装Node.js和npm

    curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash - sudo yum install -y nodejs
    

    使用 zip 和 unzip 命令来压缩和解压缩文件。

    # 本地操作
    # 压缩blog
    zip -r blog.zip ./blog
    # 复制本地文件到服务器
    scp /Users/ximingx/Downloads/blog.zip root@服务器ip地址:/root  #然后输入自己的秘密
    
    # 进入服务器
    ssh -p 22 username@remotehost
    
    # 进入到服务器后
    unzip blog.zip
    # 进入项目
    cd blog 
    # 安装依赖,启动项目
    npm i
    pm2 start app.js
    # 设置PM2开机自启
    pm2 startup systemd
    # 保存当前的PM2进程列表,确保重启后能恢复:
    pm2 save
    
    # 补充
    # sudo rm -r /path/to/your/directory 可以用来删除文件夹目录
    
  • 相关阅读:
    扩散模型的极简介绍
    go处理json
    双目视觉检测 KX02-SY1000型测宽仪 有效修正和消除距离变化对测量的影响
    从开发转测试:我从零开始,一干就是6年的自动化测试历程
    基于机器视觉的二维码识别检测 - opencv 二维码 识别检测 机器视觉 计算机竞赛
    Spring 依赖注入方式与自动装配
    达梦8 在CentOS 系统下静默安装
    基于SqlSugar的开发框架循序渐进介绍(25)-- 基于SignalR实现多端的消息通讯
    【Redis】Redis的特性和应用场景 · 数据类型 · 持久化 · 数据淘汰 · 事务 · 多机部署
    Cesium点击实体,修改参数实现实体的平移和旋转
  • 原文地址:https://blog.csdn.net/ximing020714/article/details/139989793