前言
Fastify 是一个快速、低开销、可扩展的 Node.js web 框架,而 Mongoose 是一个优秀的 MongoDB 对象模型工具。本文将介绍如何在 Fastify 框架中使用 Mongoose ORM 操作 MongoDB 数据库。
安装
首先,需要安装 Fastify 和 Mongoose:
npm install fastify mongoose
连接数据库
在使用 Mongoose ORM 操作 MongoDB 数据库之前,需要先连接数据库。
// www.javascriptcn.com code example
const fastify = require('fastify')();
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/myapp', { useNewUrlParser: true })
.then(() => console.log('MongoDB connected'))
.catch(err => console.log(err));
fastify.listen(3000, (err) => {
if (err) {
console.log(err);
process.exit(1);
}
console.log('Server is running on port 3000');
});定义模型
定义模型是 Mongoose ORM 操作 MongoDB 数据库的重要一环。在 Fastify 框架中,可以将模型定义为插件。
// www.javascriptcn.com code example
const fastify = require('fastify')();
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/myapp', { useNewUrlParser: true })
.then(() => console.log('MongoDB connected'))
.catch(err => console.log(err));
const UserSchema = new mongoose.Schema({
name: String,
age: Number,
email: String
});
const User = mongoose.model('User', UserSchema);
fastify.register((fastify, opts, next) => {
fastify.decorate('User', User);
next();
});
fastify.listen(3000, (err) => {
if (err) {
console.log(err);
process.exit(1);
}
console.log('Server is running on port 3000');
});使用模型
在定义模型之后,就可以在 Fastify 路由中使用模型了。以下示例代码演示了如何使用模型进行数据的增、删、改、查操作。
// www.javascriptcn.com code example
fastify.post('/users', async (request, reply) => {
const user = new fastify.User(request.body);
try {
await user.save();
reply.send(user);
} catch (err) {
reply.status(500).send(err);
}
});
fastify.get('/users', async (request, reply) => {
try {
const users = await fastify.User.find();
reply.send(users);
} catch (err) {
reply.status(500).send(err);
}
});
fastify.get('/users/:id', async (request, reply) => {
try {
const user = await fastify.User.findById(request.params.id);
reply.send(user);
} catch (err) {
reply.status(500).send(err);
}
});
fastify.put('/users/:id', async (request, reply) => {
try {
const user = await fastify.User.findByIdAndUpdate(request.params.id, request.body, { new: true });
reply.send(user);
} catch (err) {
reply.status(500).send(err);
}
});
fastify.delete('/users/:id', async (request, reply) => {
try {
await fastify.User.findByIdAndDelete(request.params.id);
reply.send({ message: 'User deleted successfully' });
} catch (err) {
reply.status(500).send(err);
}
});结语
本文介绍了如何在 Fastify 框架中使用 Mongoose ORM 操作 MongoDB 数据库。通过定义模型并使用模型进行数据的增、删、改、查操作,可以轻松地实现数据库的操作。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67d15dc0a941bf71342e987f