前言
在现代 Web 开发中,RESTful API 已经成为了一个非常重要的部分。使用它们可以轻松地构建出一个高效的后端架构,为前端应用提供数据支持。本文将介绍如何使用 Express.js 和 MongoDB 创建 RESTful API。
环境准备
在开始之前,确保已经安装了以下环境:
- Node.js
- MongoDB
我们将使用 Express.js 作为 Web 框架,Mongoose 作为 MongoDB 的 ODM。
创建项目
首先,我们需要创建一个项目文件夹,并在其中初始化一个 Node.js 项目:
mkdir my-api cd my-api npm init -y
然后,我们需要安装 Express.js 和 Mongoose:
npm install express mongoose
编写代码
连接 MongoDB 数据库
在 app.js
文件中,我们首先需要连接 MongoDB 数据库。在本地运行时,可以使用以下代码:
// javascriptcn.com 代码示例 const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/my-api', { useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true, }); const db = mongoose.connection; db.on('error', console.error.bind(console, 'MongoDB connection error:'));
创建模型
然后,我们需要创建一个数据模型来定义数据的结构。在这个例子中,我们将创建一个 User
模型,它将包含一个 name
和一个 email
字段。
// javascriptcn.com 代码示例 const mongoose = require('mongoose'); const userSchema = new mongoose.Schema({ name: { type: String, required: true, }, email: { type: String, required: true, unique: true, index: true, }, }); const User = mongoose.model('User', userSchema); module.exports = User;
创建路由
接下来,我们需要创建一些路由来处理 HTTP 请求。在这个例子中,我们将创建一个 /users
路由,它将处理 CRUD 操作。
// javascriptcn.com 代码示例 const express = require('express'); const User = require('./models/user'); const router = express.Router(); router.get('/', async (req, res, next) => { try { const users = await User.find(); res.json(users); } catch (err) { next(err); } }); router.post('/', async (req, res, next) => { try { const user = new User(req.body); const savedUser = await user.save(); res.json(savedUser); } catch (err) { next(err); } }); router.get('/:id', async (req, res, next) => { try { const user = await User.findById(req.params.id); res.json(user); } catch (err) { next(err); } }); router.patch('/:id', async (req, res, next) => { try { const user = await User.findByIdAndUpdate(req.params.id, req.body, { new: true, }); res.json(user); } catch (err) { next(err); } }); router.delete('/:id', async (req, res, next) => { try { await User.findByIdAndDelete(req.params.id); res.sendStatus(204); } catch (err) { next(err); } }); module.exports = router;
启动服务器
最后,我们需要在 app.js
中启动服务器,并将路由添加到应用程序中:
// javascriptcn.com 代码示例 const express = require('express'); const morgan = require('morgan'); const userRouter = require('./routes/user'); const app = express(); app.use(morgan('tiny')); app.use(express.json()); app.use('/users', userRouter); app.use((err, req, res, next) => { console.error(err.stack); res.status(500).send('Something broke!'); }); const PORT = process.env.PORT || 3000; app.listen(PORT, () => { console.log(`Server listening on port ${PORT}`); });
测试 API
现在,我们已经完成了一个简单的 RESTful API。我们可以使用 Postman 或者 curl 命令来测试它。
获取所有用户
使用 GET 请求访问 /users
路由,可以获取所有用户的信息:
curl http://localhost:3000/users
创建新用户
使用 POST 请求访问 /users
路由,可以创建新用户:
curl -X POST -H "Content-Type: application/json" -d '{"name":"Alice","email":"alice@example.com"}' http://localhost:3000/users
获取单个用户
使用 GET 请求访问 /users/:id
路由,可以获取单个用户的信息:
curl http://localhost:3000/users/1234567890
更新用户信息
使用 PATCH 请求访问 /users/:id
路由,可以更新用户信息:
curl -X PATCH -H "Content-Type: application/json" -d '{"name":"Bob"}' http://localhost:3000/users/1234567890
删除用户
使用 DELETE 请求访问 /users/:id
路由,可以删除用户:
curl -X DELETE http://localhost:3000/users/1234567890
总结
在本文中,我们介绍了如何使用 Express.js 和 MongoDB 创建 RESTful API。我们创建了一个简单的用户管理 API,并学习了如何使用路由和模型来处理 HTTP 请求。希望这个例子能够帮助你更好地理解如何使用 Express.js 和 MongoDB 构建 Web 应用程序。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6557560ad2f5e1655d1c03da