TypeError ('Router.use () требует функции промежуточного программного обеспечения, но получил' + gettype (fn)) - PullRequest
0 голосов
/ 31 декабря 2018

Я получаю эту ошибку всякий раз, когда я запускаю npm run start.

C:\Users\User\WebDevSensei\Questioner\api\v1\node_modules\express\lib\router\index.js:458
  throw new TypeError('Router.use() requires a middleware function but got a ' + gettype(fn))
  ^

TypeError: Router.use() requires a middleware function but got a Object
at Function.use (C:\Users\User\WebDevSensei\Questioner\api\v1\node_modules\express\lib\router\index.js:458:13)
at Function.<anonymous> (C:\Users\User\WebDevSensei\Questioner\api\v1\node_modules\express\lib\application.js:220:21)
at Array.forEach (<anonymous>)
at Function.use (C:\Users\User\WebDevSensei\Questioner\api\v1\node_modules\express\lib\application.js:217:7)
at Object.<anonymous> (C:/Users/User/WebDevSensei/Questioner/api/v1/app.js:17:5)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at loader (C:\Users\User\WebDevSensei\Questioner\api\v1\node_modules\babel-register\lib\node.js:144:5)
at Object.require.extensions.(anonymous function) [as .js] (C:\Users\User\WebDevSensei\Questioner\api\v1\node_modules\babel-register\lib\node.js:154:7)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)

Сбой приложения [nodemon] - ожидание изменений файла перед запуском ...

Я только что добавил babel для компиляции ES2015 в ES5.Он работал нормально, прежде чем пытаться использовать ES6, потому что это требование задачи.

Я прочитал ответ здесь о том же типе ошибки, но это не решает мою проблему, как у меня export default router; в моих перенаправленных файлах.

Вот мой server.js файл, который моя точка входа:

import http from 'http';
import app from './app';
const port = process.env.PORT || 3000;

const server = http.createServer(app);

server.listen(port);

, а вот мой app.js file:

import express from 'express';
import morgan from 'morgan';
import bodyParser from 'body-parser';

const app = express();

const meetupRoutes = require('./routes/meetups');
const questionRoutes = require('./routes/questions');
const usersRoutes = require('./routes/users');

app.use(morgan('dev'));
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

// Routes which should handle requests
app.use('api/v1/meetups', meetupRoutes);
app.use('api/v1/questions', questionRoutes);
app.use('api/v1/users', usersRoutes);

// Handling errors generated as a result of unavailable requests
app.use((req, res, next) => {
  const error = new Error('Request not found.');
  error.status = 404;
  next(error);
});

app.use((error, req, res, next) => {
  res.status(error.status || 500);
  res.json({
    message: error.message,
  });
});

export default app;

Что может быть причиной этой ошибки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...