我正在尝试使用fastify-bookshelfjs进行固定。
联系人(模型)
module.exports = async function (fastify) {
console.log("4")
fastify.bookshelf.Model.extend({
tableName: 'contacts',
})
}
联系人(控制器)
console.log("3")
const Contact = require('../models/contact')()
// Get all contact
async function getContact(req, reply) {
const contacts = Contact.fetchAll()
reply.code(200).send(contacts)
}
module.exports = getContact
联系人(路线)
module.exports = async function (fastify) {
console.log("2")
const contact = require('../controller/contact')
fastify.get('/', contact.getContact)
}
服务器启动时,我将得到此输出
2
3
4
(node:10939) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'bookshelf' of undefined
1
server listening on 3000
为什么在contact(model)中没有固定,如何解决?
答案 0 :(得分:0)
在您的controller
中,当您导入模型时,需要将fastify
作为参数。
此外,您还必须导入fastify
模块。
您的联系人(控制器)应该是
const fastify = require('fastify') // import the fastify module here
console.log("3")
const Contact = require('../models/contact')(fastify)
// Get all contact
async function getContact(req, reply) {
const contacts = Contact.fetchAll()
reply.code(200).send(contacts)
}
module.exports = getContact