Javascript 抛出新类型错误(';app.use()需要中间件函数';);

Javascript 抛出新类型错误(';app.use()需要中间件函数';);,javascript,node.js,express,microservices,seneca,Javascript,Node.js,Express,Microservices,Seneca,我只是尝试运行使用Node js开发微服务的示例代码,它说: var express = require('express') var bodyParser = require('body-parser') var cookieParser = require('cookie-parser') var methodOverride = require('method-override') var seneca = require('seneca')() var argv = require('o

我只是尝试运行使用Node js开发微服务的示例代码,它说:

var express = require('express')
var bodyParser = require('body-parser')
var cookieParser = require('cookie-parser')
var methodOverride = require('method-override')
var seneca = require('seneca')()
var argv = require('optimist').argv
var app = express()
var cors = require('cors')
var routes = require('./../routes/index')
let path = require('path')
var webpack = require('webpack')
var webpackMiddleware = require('webpack-dev-middleware')
var config = require('./../webpack.config.js')

var compiler = webpack(config)

var conf = {
   port: argv.p || 7770
}

app.engine('jsx', require('express-react-views').createEngine())
app.set('port', conf.port)
app.use(cors())
app.use('/public', express.static(path.join(__dirname,'./../public')))
app.use('/views', express.static(path.join(__dirname, './../views')))
app.use(webpackMiddleware(compiler));
app.use(cookieParser())
app.use(express.query())
app.use(bodyParser.urlencoded({extended: true}))
app.use(methodOverride())
app.use(bodyParser.json())
app.use(express.static('public'))
app.use(seneca.export('web'))  // Error line

seneca.use('./../lib/registerAPI')

app.use('/', routes)

module.exports = app
但是我得到一个错误,上面写着:

/home/quocdinh/workspace/ECommerce/ass-ECommerce/node_modules/express/lib/application.js:177
     throw new TypeError('app.use() requires middleware functions');
     ^
TypeError: app.use() requires middleware functions 
     at EventEmitter.use (/home/quocdinh/workspace/ECommerce/ass-ECommerce/node_modules/express/lib/application.js:177:11)
     at Object.<anonymous> (/home/quocdinh/workspace/ECommerce/ass-ECommerce/src/app.js:33:5) // --> line: app.use(seneca.export('web'))
但仍然不是


我试图将节点版本的版本从6.0降低到4.0,但仍然出现相同的错误

我也在与塞内卡学习微服务。
使用express版本~4.13.4和seneca版本^2.0.0适合我

有关更多信息,请访问以下网址的seneca入门示例:


查看他们的package.json文件。希望有帮助

我也在向塞内卡学习微服务。
使用express版本~4.13.4和seneca版本^2.0.0适合我

有关更多信息,请访问以下网址的seneca入门示例:


查看他们的package.json文件。希望有帮助

尝试确保您使用的express版本(在
package.json
文件中配置)与您正在学习的任何教程相同。这是my package.json(“express”):“~4.11.2”)中的express版本。您需要确保
npm安装的express版本与教程中使用的版本相同。使用express 2构建的示例应用程序通常不会使用express 3或4以及viceversa干净地运行。我尝试了express的版本2、3、4,但未成功。此错误通常意味着您试图调用一个中间件函数,该函数无权访问req、res和next对象。看见我对Seneca一无所知,但我会仔细查看他们的文档。请尝试确保您使用的express版本(如
package.json
文件中配置的)与您所遵循的任何教程相同。这是my package.json中的express版本(“express”:“~4.11.2”)您需要确保
npm安装了本教程中使用的相同版本的express。使用express 2构建的示例应用程序通常不会使用express 3或4以及viceversa干净地运行。我尝试了express的版本2、3、4,但未成功。此错误通常意味着您试图调用一个中间件函数,该函数无权访问req、res和next对象。看见我对塞内卡一无所知,但我会仔细看他们的文件。
 app.use(require('seneca-web'))