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

У меня были некоторые проблемы с попыткой заставить мой код работать.Я попробовал пару вещей, но он говорит, что моя ошибка в строке 28: "app.use ('/', 'indexRouter')", но я понятия не имею, почему.Мой файл index.js и файл app.js являются копиями друг друга.

Мой файл app.js:

let express = require('express')
let path = require('path')
let favicon = require('serve-favicon')
let cookieParser = require('cookie-parser')
let bodyParser = require('body-parser')
let logger = require('morgan')

//Starts an express app
let app = express()

//Gives access to routes
//You will seperate each route base on different activites and group them that way
let indexRouter = require('./routes/index')
let userRouter = require('./routes/users')

// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use(app.router);
routes.initialize(app);

app.use('/','indexRouter')
app.use('/users','userRouter')

// catch 404 and forward to error handler
app.use(function(req, res, next) {
    var err = new Error('Not Found');
    err.status = 404;
    next(err);
  });

  // error handler
  app.use(function(err, req, res, next) {
    // set locals, only providing error in development
    res.locals.message = err.message;
    res.locals.error = req.app.get('env') === 'development' ? err : {};

    // render the error page
    res.status(err.status || 500);
    res.render('error');
  });

//ALlows www to get access to it 
module.exports = app

Файл index.js:

var express = require('express');
var router = express.Router();

/* GET users listing. */
router.get('/', function(req, res, next) {
  res.send('index js stuff');
});

module.exports = router;

1 Ответ

0 голосов
/ 25 сентября 2018

indexRouter и userRouter не должны быть строкой.

app.use('/', indexRouter)
app.use('/users', userRouter)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...