将代码重构为单独的js文件后,我一直收到此错误消息。我已经尝试了多种基于SO帖子的方法,但似乎无济于事,或者出现此错误,或者控制器中的应用变量为undefined
。
我是Node的新手,所以如果有人可以向正确的方向指点我,我将不胜感激!
节点版本:v6.17.0
app.js
const express = require('express');
const app = express();
const controller = require('./plate-controller');
module.exports.app = app;
控制器
const plateService = require('./plate-service');
var app = require('./app').app;
var exports = module.exports = {};
exports.controller = function(app) {
app.get('/plates/:plate_id', function (req, res) {
return plateService.getPlateById(req, res);
});
app.get('/plates/search/:plate', function (req, res) {
return plateService.search(req, res);
});
app.get('/plates/current-plates', function (req, res) {
return plateService.getCurrentPlates(req, res);
});
app.get('plates/prefix-plates', function (req, res) {
return plateService.getPrefixPlates(req, res);
});
};
这会给未定义的内容,并且尝试像require('..')()
这样的调用总是会出现is not a function
错误。
在将控制器变量输出到控制台时,它实际上并不像我想的那样看起来像一个函数,而是它在对象内部的一个函数,因此我认为这是require(...) is not a function
的原因。
{ controller: [Function] }