jjw

写给自己的博客。 记录学习的点滴以备查。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

插件基础

Posted on 2023-07-12 17:49  jjw  阅读(4)  评论(0编辑  收藏  举报
const fp = require('fastify-plugin')

const { DataSource } = require('typeorm')

function dbPlugin(fastify, options, done) {
    const con = new DataSource({
        type: 'mssql',
        ...options,
        options: {
            encrypt: false,
        },
    })
   
    con.initialize().then( dbcon => {
        fastify.decorate('db', con)
        done()
    }).catch(error => {
        console.log(error)
    })
}


module.exports = fp(dbPlugin)

建议用fastify-plugin的方式创建插件,options为注册插件时传递来的参数,done最后必须要调用。

fastify.register(require('./plugins/db.js'), {
    host: DBIP,
    username: DBUSER,
    password: DBPASS,
    database: DATABASE,
})

注册插件,第二个字面对象是传递给插件的options的实参。