从入门到精通:Express+MongoDB服务端开发终极教程
2023-09-28 22:21:21
前言:掌握全栈开发的利器 - Express+MongoDB
在现代Web开发领域,掌握全栈开发技术已成为必备技能之一。作为一名全栈工程师,您需要具备构建应用的前端和后端的能力。Express和MongoDB正是构建现代Web应用的理想选择。
Express是一个轻量级的Node.js框架,用于构建快速、可靠的Web应用。它提供了丰富的功能,包括路由、中间件和模板引擎等,帮助您快速搭建Web应用的骨架。
MongoDB是一个非关系型数据库,以其灵活性和扩展性而闻名。它采用JSON格式存储数据,非常适合处理海量数据和复杂的数据结构。
构建您的第一个Express应用
-
创建Express工程
使用npm或yarn创建新的Express工程:
npm init -y npm install express
-
编辑入口文件src/app.js
在src目录下创建一个名为app.js的文件,并添加以下代码:
const express = require('express'); const app = express(); app.get('/', (req, res) => { res.send('Hello World!'); }); app.listen(3000, () => { console.log('Server is listening on port 3000'); });
-
配置启动脚本package.json
在package.json文件中添加以下脚本:
"scripts": { "start": "node src/app.js" }
-
运行工程
在终端中运行以下命令启动工程:
npm start
访问http://localhost:3000,您将看到"Hello World!"。
路由派发:构建应用的骨架
路由是将URL映射到处理请求的函数,Express提供了强大的路由功能,让您轻松构建应用的骨架。
-
定义路由模块
在src目录下创建一个名为routes/index.js的文件,并添加以下代码:
const express = require('express'); const router = express.Router(); router.get('/', (req, res) => { res.send('Hello World!'); }); module.exports = router;
-
定义首页路由src/views/indexRouter
在src/views目录下创建一个名为indexRouter.js的文件,并添加以下代码:
const express = require('express'); const router = express.Router(); router.use('/', require('./routes/index')); module.exports = router;
-
修改入口文件src/app.js
在src/app.js文件中添加以下代码:
const indexRouter = require('./views/indexRouter'); app.use('/', indexRouter);
现在,当您访问http://localhost:3000时,将看到"Hello World!"。
构建REST API:与数据进行交互
REST API是一种基于HTTP协议的应用编程接口,它允许应用与服务器进行交互。Express是一个构建REST API的理想选择,它提供了丰富的中间件和工具来简化API开发。
-
安装MongoDB
在终端中运行以下命令安装MongoDB:
brew install mongodb-community@4.2
-
创建MongoDB数据库
在终端中运行以下命令创建MongoDB数据库:
mongosh
在mongosh命令行中运行以下命令:
use mydb db.createCollection('users')
-
定义数据模型
在src/models/user.js文件中添加以下代码:
const mongoose = require('mongoose'); const userSchema = new mongoose.Schema({ name: String, age: Number }); const User = mongoose.model('User', userSchema); module.exports = User;
-
连接MongoDB数据库
在src/db.js文件中添加以下代码:
const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost:27017/mydb', { useNewUrlParser: true, useUnifiedTopology: true });
-
定义路由并处理REST API请求
在src/routes/user.js文件中添加以下代码:
const express = require('express'); const router = express.Router(); const User = require('../models/user'); router.get('/', async (req, res) => { const users = await User.find(); res.send(users); }); router.post('/', async (req, res) => { const user = new User(req.body); await user.save(); res.send(user); }); router.put('/:id', async (req, res) => { const user = await User.findByIdAndUpdate(req.params.id, req.body); res.send(user); }); router.delete('/:id', async (req, res) => { await User.findByIdAndDelete(req.params.id); res.send({ message: 'User deleted successfully' }); }); module.exports = router;
-
修改入口文件src/app.js
在src/app.js文件中添加以下代码:
const userRouter = require('./routes/user'); app.use('/api/users', userRouter);
现在,您可以通过以下URL访问REST API:
- http://localhost:3000/api/users:获取所有用户
- http://localhost:3000/api/users/:id:获取指定ID的用户
- http://localhost:3000/api/users:创建新用户
- http://localhost:3000/api/users/:id:更新指定ID的用户
- http://localhost:3000/api/users/:id:删除指定ID的用户
结语:掌握全栈开发的利器 - Express+MongoDB
通过本教程,您已经了解了如何使用Express和MongoDB构建全栈Web应用。您学会了如何创建Express应用、定义路由、构建REST API,以及如何连接和操作MongoDB数据库。
Express和MongoDB是构建现代Web应用的强大工具,掌握了它们,您将能够构建出更强大、更可靠的应用。