Javascript TypeError(';Router.use()需要一个中间件函数,但获得了一个';+;gettype(fn))特性js

Javascript TypeError(';Router.use()需要一个中间件函数,但获得了一个';+;gettype(fn))特性js,javascript,node.js,express,feathersjs,Javascript,Node.js,Express,Feathersjs,我正在尝试将一个方法绑定到我的/userAuthenticationInfo路由,我已经在关于这个问题的其他文章中对我的代码做了一些更改,但我无法获得任何工作。 我使用FeatherJS的express实现,但即使使用express,我仍然会遇到相同的错误。任何帮助都将不胜感激 app.js const feathers = require('@feathersjs/feathers'); const express = require('@feathersjs/express'); const

我正在尝试将一个方法绑定到我的
/userAuthenticationInfo
路由,我已经在关于这个问题的其他文章中对我的代码做了一些更改,但我无法获得任何工作。 我使用FeatherJS的express实现,但即使使用express,我仍然会遇到相同的错误。任何帮助都将不胜感激

app.js

const feathers = require('@feathersjs/feathers');
const express = require('@feathersjs/express');
const nano = require('cloudant-nano');
const AnnotatorService = require('./services/api/AnnotatorService');

const app = express(feathers())
    .configure(express.rest())
    .use(express.json())
    .use(express.urlencoded({ extended: true }));

app.use('/userAuthenticationInfo', AnnotatorService.getUserAuthenticationInfo('bobby', app));
AnnotatorService.js

const nano = require('cloudant-nano');
const couchdbservice = require('@kapmug/feathers-nano/lib/index');

const host = process.env.DB_HOST || '127.0.0.1:5984';
const auth = `${process.env.DB_USERNAME || 'admin'}:${process.env.DB_PASSWORD || 'welcome'}`;
const opts = {
    url: `http://${auth}@${host}`,
};

const options = {
    name: 'users',
    connection: nano(opts),
    database: 'users',
    paginate: {
        default: 5,
        max: 200,
    },
};

var params = {
    limit: 5,
    skip: 0,
};

module.exports.getUserAuthenticationInfo = function (username, app) {
    console.log('mission accomplished');
};
错误日志

/Users/dromero/Documents/annotator-backend/node_modules/express/lib/router/index.js:458
      throw new TypeError('Router.use() requires a middleware function but got a ' + gettype(fn))
      ^

TypeError: Router.use() requires a middleware function but got a undefined
    at Function.use (/Users/dromero/Documents/annotator-backend/node_modules/express/lib/router/index.js:458:13)
    at Function.<anonymous> (/Users/dromero/Documents/annotator-backend/node_modules/express/lib/application.js:220:21)
    at Array.forEach (<anonymous>)
    at Function.use [as _super] (/Users/dromero/Documents/annotator-backend/node_modules/express/lib/application.js:217:7)
    at Function.use (/Users/dromero/Documents/annotator-backend/node_modules/@feathersjs/express/lib/index.js:50:28)
    at Function.newMethod [as use] (/Users/dromero/Documents/annotator-backend/node_modules/@feathersjs/express/node_modules/uberproto/lib/proto.js:34:20)
    at Object.<anonymous> (/Users/dromero/Documents/annotator-backend/src/app.js:11:5)
    at Module._compile (internal/modules/cjs/loader.js:776:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:829:12)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)
/Users/dromero/Documents/annotator backend/node\u modules/express/lib/router/index.js:458
抛出新的TypeError('Router.use()需要一个中间件函数,但得到了'+gettype(fn))
^
TypeError:Router.use()需要中间件函数,但未定义
在Function.use(/Users/dromero/Documents/annotator backend/node_modules/express/lib/router/index.js:458:13)
在功能上。(/Users/dromero/Documents/annotator backend/node_modules/express/lib/application.js:220:21)
在Array.forEach()处
在Function.use[as_super](/Users/dromero/Documents/annotator backend/node_modules/express/lib/application.js:217:7)
在Function.use(/Users/dromero/Documents/annotator backend/node_modules/@feathersjs/express/lib/index.js:50:28)
在Function.newMethod[as use](/Users/dromero/Documents/annotator backend/node_modules/@feathersjs/express/node_modules/uberproto/lib/proto.js:34:20)
反对。(/Users/dromero/Documents/annotator-backend/src/app.js:11:5)
at模块编译(内部/modules/cjs/loader.js:776:30)
在Object.Module._extensions..js(internal/modules/cjs/loader.js:787:10)
at Module.load(内部/modules/cjs/loader.js:653:32)
在tryModuleLoad(内部/modules/cjs/loader.js:593:12)
at Function.Module._load(内部/modules/cjs/loader.js:585:3)
位于Function.Module.runMain(internal/modules/cjs/loader.js:829:12)
启动时(内部/bootstrap/node.js:283:19)
在bootstrapNodeJSCore(internal/bootstrap/node.js:622:3)

应用程序中。使用
函数您需要放置一个中间件函数(指针),其声明如下:

function(req, res, next){ ... }
但是,通过放置
AnnotatorService.getUserAuthenticationInfo('bobby',app)
实际上是在调用函数,该函数不返回任何内容,因此
未定义

所以应该是,

module.exports.getUserAuthenticationInfo = function (username, app) {
  return function(req, res, next){
    console.log('mission accomplished');
    next()//or res.end() or res.send() whatever
  }
};