gpt4 book ai didi

javascript - ExpressJs 中未定义函数

转载 作者:行者123 更新时间:2023-12-03 07:27:12 26 4
gpt4 key购买 nike

我完全失去了理智:

我有一个快速应用程序:以下是此示例的几个文件的快照:
应用程序.js
-模型
--Event.js
--Match.js
路线
--matches.js

app.js:

global.__base = __dirname + '/';
var MatchModel = require('./models/Match');
var EventModel = require('./models/Event');
//...

matches.js:

var EventModel = require(__base + 'models/Event');
var MatchModel = require('../models/Match.js')
router.get('/', [passport.authenticate('bearer', {session: false}), function (req, res) {
EventModel.something()
}])

事件.js:

var MatchModel = require(__base + 'models/Match')

function something() {
MatchModel.createQuery()
return "jizz"
}

module.exports = {
createQuery : createQuery,
}

Match.js:

function createQuery() {
//..
}

module.exports = {
createQuery:createQuery
}

当 GET 匹配/API 被调用时:在 Event.js 中,MatchModel.createQuery() 给出错误 MatchModel.createQuery() 不是函数。但如果我将 var MatchModel = require(__base + 'models/Match') 移到 Something() 函数内,它就会起作用。

最佳答案

您可以创建一个主函数 createQuery 并根据要求定义其原型(prototype),然后导出该函数以在 Event.js 中使用

Event.js 内部

var matchModel = require(./Match.js)

exports.getSometing = function(){

var testSomething = new matchModel();

var resultOfCreateQuery = testSomething.createQuery()

console.log('Result of createQuery : '+resultOfCreateQuery);
}

Match.js 内部

function something(){
//another logic

}

something.prototype.createQuery= function(){
//create query logic
return "jizz"
}

module.exports = something;

我希望这有帮助:)

关于javascript - ExpressJs 中未定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35953814/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com