Node \ Express-“ TypeError:require(...)不是函数”或应用未定义

时间:2019-03-11 09:47:58

标签: node.js express module

将代码重构为单独的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] }

0 个答案:

没有答案