I have not found a question with a similar setup... how do I fix this?
I'm using node, express routing, request to call a token from an api, and async series to keep everything clean. I simplified the code by only showing one function in the async series.
routes.js
var express = require('express')
var router = express.Router()
var isAuthenticated = require("./passportAuth.js")
var tokens = require('./tokens')
module.exports = function() {
router.get('/allTokens', isAuthenticated, tokens())
return router
}
./tokens.js
var request = require("request")
var async = require('async')
module.exports = function(req, res, next) {
var allTokens = function(callback) {
request('url', function(err, res, body) {
if(err) return callback(err, null)
return callback(null, 'success')
})
}
var asyncFinally = function(err, results) {
if(err) return next(err)
res.send(results)
}
async.series([allTokens], asyncFinally)
}
Error message
Route.get() requires callback functions but got a [object Undefined]
The router is expecting a function value but you are passing in an invoked function tokens(). Try just tokens.