当然可以!以下是关于如何使用Node.js、Express和MongoDB搭建一个简单的博客系统的详细步骤和示例代码。
准备工作
首先,确保你已经安装了Node.js和MongoDB。你可以从官方网站下载并安装它们:
- Node.js: https://nodejs.org/
- MongoDB: https://www.mongodb.com/
初始化项目
-
创建一个新的文件夹,并在其中初始化一个新的Node.js项目:
mkdir myblog cd myblog npm init -y
-
安装所需的依赖包:
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.ejs
和 new-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>
以上就是基本的博客系统构建流程。你可以根据需要进一步扩展功能,比如添加用户认证、评论等。
希望这对你有所帮助!