簡體   English   中英

Express.js:拋出新的TypeError('Router.use()需要中間件功能,但得到了'+ gettype(fn))

[英]Expressjs: throw new TypeError('Router.use() requires a middleware function but got a ' + gettype(fn))

我在嘗試使我的代碼正常工作時遇到了一些問題。 我已經嘗試了幾件事,但是它說我的錯誤在第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;

indexRouteruserRouter不應為字符串。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM