简体   繁体   中英

middleware function error in expressjs

I unable to run node main file in terminal and I am using handlebar as template engine

getting this weird error I did npm install all dependencies which is required. but still getting this error.

/home/mohsin/Desktop/mohsin/react/react-web-app/node_modules/express/lib/application.js:210
throw new TypeError('app.use() requires a middleware function')
^

TypeError: app.use() requires a middleware function

this is error screenshot please have look https://i.imgur.com/c6zoaA6.png

My app.js file

const express = require('express');
const path = require('path');
const bodyParser = require('body-parser');
const exphbs = require('express-handlebars');
const expressValidator = require('express-validator');
const flash = require('connect-flash');
const session = require('express-sessions');
const passport = require('passport');
const mongoose = require('mongoose');

// Port env
const port = 3000;

// Route files
 const index = require('./routes/index');
const user = require('./routes/user');

  // Init App
  const app = express();

  // View Engine
    app.engine('handlebars', exphbs({defaultLayout: 'main'}));
   app.set('view engine', 'handlebars');

   // Static Folder
   app.use(express.static(path.join(__dirname, 'public')));

   // Body parser middleware
    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded({ extended: false}));

     // Express Session
      app.use(session({
secret: 'secret',
saveUninitialized: true,
resave: true
 }));



 // Start server
 app.use('/', index);
 app.use('/user', user);

  // Start Server
 app.listen(port, () => {
 console.log('Server started on port '+port);
 });

There is no package named 'express-sessions' instead use express-session so its not returning any method. which app.use can call as method. Here is package

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM