我已经使用Docker创建了CRUD服务器,Factify和MongoDB
#mongodb #fastify #mongo

前提

以下是我的YouTube视频中解释的代码(仅是意大利语,但字幕字幕),该代码定于02-02-2023。

您不需要知道它的工作方式。但是您需要知道什么是数据库。在这里不知道SQL或NOSQL之间的区别并不重要。重要的是要知道数据库是什么。 MongoDB是一个数据库。

休息

这篇文章还假设您打结了什么是休息。休息手段:代表性国家转移。很快,..带有数据库CRUD操作(创建,阅读,更新和删除)具有相应的HTTP动词。

  • 创建 - >发布
  • 阅读 - >获取
  • 更新 - > put
  • delete-> delete

package.json

这个小快的crud非常简单。在包装json中,我们只有很少的软件包:@fastify/mongodb@6.0.0fastify。无需其他依赖。

要求

代码这里非常非常简单。它加载快速广告登记册。数据库之所以称为库,是因为我希望构建一个简单的工具来存储我的所有书籍。

const fastify = require('fastify')({ logger: !true })

fastify.register(require('@fastify/mongodb'), {
    forceClose: true,
    url: 'mongodb://localhost:27017',
    database: 'library'
})

创建

crud包含创建,读取,更新和删除。这是第一个字母。

fastify.post('/books', async (request, reply) => {
    const result = await fastify
        .mongo.db.collection('books')
        .insertOne(request.body)

    reply.send({
        message: 'book added',
        id: result.insertId
    })
})

我想列出存储在数据库中的所有书籍。

fastify.get('/books', async (request, reply) => {
    const books = await fastify
        .mongo.db.collection('books')
        .find().toArray()

    reply.send(books)
})

更新

我来自PHP(Symfony),对我来说像const { bookId } = request.params;这样的代码类似于黄金。节点是非常好的语言。我爱上了这种语言。

fastify.put('/books/:bookId', async (request, reply) => {
    const { bookId } = request.params;
    const ObjectId = fastify.mongo.ObjectId
    const result = await fastify
        .mongo.db.collection('books')
        .replaceOne(
            { _id: new ObjectId(bookId) },
            request.body
        )

    reply.send({
        message: 'book updated',
        id: result.insertId
    })
})

删除

fastify.delete('/books/:bookId', async (request, reply) => {
    const { bookId } = request.params;
    const ObjectId = fastify.mongo.ObjectId
    await fastify
        .mongo.db.collection('books')
        .deleteOne({ _id: new ObjectId(bookId) })

    reply.statusCode = 204
    reply.send(null)
})

服务器

const start = async () => {
    try {
        await fastify.listen({ port: 3000 })
    } catch (err) {
        fastify.log.error(err)
        process.exit(1)
    }
}

start()

跑步

现在有两个简单命令:

  • npm run mongo
  • npm run start

我们获得了现成的应用程序。在这篇文章中,我没有客户。因此,我将在这里放一些卷曲命令,以进行所有CRUD操作。使用真实ID更改<bookId>