新手用Nodejs+express+mongodb搭建的博客系统

新手用Nodejs+express+mongodb搭建的博客系统

欢迎大家来访 http://xwenliang.cn/

12 回复

当然可以!以下是关于如何使用Node.js、Express和MongoDB搭建一个简单的博客系统的详细步骤和示例代码。

准备工作

首先,确保你已经安装了Node.js和MongoDB。你可以从官方网站下载并安装它们:

初始化项目

  1. 创建一个新的文件夹,并在其中初始化一个新的Node.js项目:

    mkdir myblog
    cd myblog
    npm init -y
    
  2. 安装所需的依赖包:

    npm install express mongoose body-parser ejs
    

创建服务器

在项目根目录下创建一个名为app.js的文件,并添加以下代码来设置Express服务器:

const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');

const app = express();

// 设置模板引擎为EJS
app.set('view engine', 'ejs');

// 使用body-parser中间件解析请求体
app.use(bodyParser.urlencoded({ extended: true }));

// 连接MongoDB数据库
mongoose.connect('mongodb://localhost:27017/myblog', {
    useNewUrlParser: true,
    useUnifiedTopology: true
});

// 定义博客文章模型
const Post = mongoose.model('Post', new mongoose.Schema({
    title: String,
    content: String
}));

// 路由定义
app.get('/', async (req, res) => {
    const posts = await Post.find();
    res.render('index', { posts });
});

app.get('/post/new', (req, res) => {
    res.render('new-post');
});

app.post('/post', async (req, res) => {
    const post = new Post(req.body);
    await post.save();
    res.redirect('/');
});

// 启动服务器
app.listen(3000, () => {
    console.log('Server is running on port 3000');
});

创建视图模板

在项目根目录下创建一个名为views的文件夹,并在其中创建两个EJS文件:

index.ejs

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Blog</title>
</head>
<body>
    <h1>My Blog</h1>
    <ul>
        <% posts.forEach(post => { %>
            <li>
                <h2><%= post.title %></h2>
                <p><%= post.content %></p>
            </li>
        <% }) %>
    </ul>
    <a href="/post/new">Create New Post</a>
</body>
</html>

new-post.ejs

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Create New Post</title>
</head>
<body>
    <h1>Create New Post</h1>
    <form action="/post" method="POST">
        <label for="title">Title:</label>
        <input type="text" id="title" name="title" required>
        <br>
        <label for="content">Content:</label>
        <textarea id="content" name="content" required></textarea>
        <br>
        <button type="submit">Submit</button>
    </form>
</body>
</html>

运行项目

最后,在项目根目录下运行以下命令启动服务器:

node app.js

现在,打开浏览器并访问http://localhost:3000,你应该能看到你的简单博客系统。你可以创建新文章并在首页查看它们。

希望这对你有所帮助!如果你有任何问题或需要进一步的帮助,请随时告诉我。


您好 我也在弄这个 但是遇到了问题 能请问一下你吗?node.js指南中 连接mongodb 数据库的时候遇到的问题 和app.dynamicHelpers的问题

如果连接mongo出错的话 试试将app.js中的: var MongoStore = require(‘connect-mongo’); 改为 var MongoStore = require(‘connect-mongo’)(express);

视图助手我没有用过 也不知道有什么问题

源码在哪里啊?

问一下,您的微博是在哪里部署的,我一直不知道怎么部署,发布网站,谢啦####

正在优化中,能用了再放出来

买的阿里云 然后手动配的服务器

页面用的什么模板呀?

后台用的express 前端自己写的

配色看着不是太舒服

好高级的样子……

当然可以!以下是针对“新手用Node.js + Express + MongoDB 搭建的博客系统”的一个简要指南,并附上一些示例代码。

1. 初始化项目

首先,创建一个新的Node.js项目并安装所需的依赖库:

mkdir myBlog
cd myBlog
npm init -y
npm install express mongoose body-parser ejs --save

2. 配置Express应用

在项目根目录下创建一个index.js文件:

const express = require('express');
const bodyParser = require('body-parser');
const mongoose = require('mongoose');
const app = express();

// 设置模板引擎为EJS
app.set('view engine', 'ejs');

// 使用body-parser中间件
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

// 连接到MongoDB数据库
mongoose.connect('mongodb://localhost/blog', { useNewUrlParser: true, useUnifiedTopology: true });

// 定义博客文章模型
const Post = mongoose.model('Post', {
    title: String,
    content: String
});

// 路由定义
app.get('/', async (req, res) => {
    const posts = await Post.find();
    res.render('home', { posts });
});

app.get('/post/new', (req, res) => {
    res.render('new-post');
});

app.post('/post', async (req, res) => {
    const post = new Post({
        title: req.body.title,
        content: req.body.content
    });
    await post.save();
    res.redirect('/');
});

app.listen(3000, () => console.log('Server running on port 3000'));

3. 创建视图

在项目中创建一个views目录,并在其中创建两个EJS文件:home.ejsnew-post.ejs

  • home.ejs:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Home</title>
</head>
<body>
    <h1>Blog Posts</h1>
    <ul>
        <% posts.forEach(post => { %>
            <li><%= post.title %> - <%= post.content %></li>
        <% }) %>
    </ul>
    <a href="/post/new">Create New Post</a>
</body>
</html>
  • new-post.ejs:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Create Post</title>
</head>
<body>
    <h1>Create a New Post</h1>
    <form action="/post" method="POST">
        <label for="title">Title:</label>
        <input type="text" id="title" name="title"><br><br>
        <label for="content">Content:</label>
        <textarea id="content" name="content"></textarea><br><br>
        <button type="submit">Submit</button>
    </form>
</body>
</html>

以上就是基本的博客系统构建流程。你可以根据需要进一步扩展功能,比如添加用户认证、评论等。

希望这对你有所帮助!

回到顶部