Ajax发布中的差异

I have one post like this

app.post('/auth', passport.initialize(), passport.authenticate('local', { session: false,scope: [] }), serialize, generateToken, respond);

this is working correctly.

Now I have made above post as a function and calling from different page

accesstokenController.auth = function(req, res) {
  console.log('Here auth called');
    passport.initialize(), passport.authenticate(
      'local', {
        session: false,
        scope: []
      }), serialize, generateToken, respond
  };

and calling this method from differnt rout page.

This is not working means passport.intialize() or passport.authenticate is not being called

Router calling method

var oauth = require("../oauth/accesstoken");
router.post('/auth', function(req, res) {
    oauth.auth(req, res);
});

What's wrong there

Thanks

See the express reference for app.method and passing middleware arguments.

You can export an array of handler functions like so:

// ./oauth.js

exports.init = [
   // express_session({secret: 'use express-session if you like'),
   // passport.session(),
   passport.initialize()
];

exports.login = [
   passport.authenticate('local', options),
   serialize,
   generateToken,
   (req, res) => res.send('you are logged in')
];

and use them in your app/router:

// ./app.js

const auth = require('./oauth');

app.use(auth.init);
app.post('/login', auth.login);

To follow the passport docs,
you should configure the module and call passport.initalize (a function returning an express middleware function, hence the brackets) separately with app.use