Я просто пытаюсь запустить коды образца из развивающихся Microservices с Node JS, и он говорит:throw new TypeError ('app.use() требует функций промежуточного слоя');
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
но Im получаю сообщение об ошибке, которое говорит:
/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'))
Я пытался найти решения но неэффективны.
Я попытался добавить
app.use(require('seneca-web'))
, но все еще не может быть
Я пытался понизить версию версии узла, который я должен 4.0 от 6.0, но все-таки получил ту же ошибку
Убедитесь, что вы используете ту же самую версию express (как указано в файле 'package.json') как любой учебник, за которым вы следуете. –
Это экспресс-версия в моем пакете. Json («express»: «~ 4.11.2») –
Вам нужно убедиться, что вы установили 'npm install' ту же самую версию экспресс, которая используется в учебнике. Примеры приложений, построенных с использованием express 2, обычно не будут выполняться с использованием экспресс-памяти 3 или 4 и наоборот. –