简体   繁体   English

Heroku,node.js,服务器崩溃错误:大多数中间件(如logger)不再与Express捆绑在一起,必须单独安装

[英]Heroku, node.js, server crash with Error: Most middleware (like logger) is no longer bundled with Express and must be installed separately

I try to deploy my app into heroku service, but after push the files the log give me this error: Error: Most middleware (like logger) is no longer bundled with Express and must be installed separately. 我尝试将我的应用程序部署到heroku服务中,但在推送文件后,日志会给我这个错误:错误:大多数中间件(如logger)不再与Express捆绑在一起,必须单独安装。

My package.json is 我的package.json是

{
   "dependencies":{
      "connect":"3.0.0-rc.2",
      "express":"^4.1.1",
      "express-logger":"0.0.2",
      "gzippo":"^0.2.0",
      "logfmt":"^1.1.2"
   },
   "devDependencies":{
      "connect":"3.0.0-rc.2",
      "grunt":"~0.4.1",
      "grunt-autoprefixer":"~0.4.0",
      "grunt-bower-install":"~1.0.0",
      "grunt-concurrent":"~0.5.0",
      "grunt-contrib-clean":"~0.5.0",
      "grunt-contrib-compass":"~0.7.2",
      "grunt-contrib-concat":"~0.3.0",
      "grunt-contrib-connect":"~0.5.0",
      "grunt-contrib-copy":"~0.4.1",
      "grunt-contrib-cssmin":"~0.7.0",
      "grunt-contrib-htmlmin":"~0.1.3",
      "grunt-contrib-imagemin":"~0.3.0",
      "grunt-contrib-jshint":"~0.7.1",
      "grunt-contrib-uglify":"~0.2.0",
      "grunt-contrib-watch":"~0.5.2",
      "grunt-google-cdn":"~0.2.0",
      "grunt-karma":"^0.8.3",
      "grunt-newer":"~0.6.1",
      "grunt-ngmin":"~0.0.2",
      "grunt-rev":"~0.1.0",
      "grunt-svgmin":"~0.2.0",
      "grunt-usemin":"~2.0.0",
      "jshint-stylish":"~0.1.3",
      "karma":"^0.12.14",
      "karma-jasmine":"^0.1.5",
      "karma-ng-html2js-preprocessor":"^0.1.0",
      "karma-ng-scenario":"^0.1.0",
      "load-grunt-tasks":"~0.4.0",
      "time-grunt":"~0.2.1"
   },
   "engines":{
      "node":">=0.10.0"
   },
   "name":"eversnap",
   "scripts":{
      "test":"grunt test"
   },
   "version":"0.0.1"
}

It looks like Express 4 is upgraded from Express 3 but the json (and maybe code too) is not. 看起来Express 4从Express 3升级但是json(也许代码也不是)。

// package.json (Express 4)
...
  "dependencies": {
    "express": "~4.0.0",
    "morgan": "~1.0.0",
    "body-parser": "~1.0.0",
    "method-override": "~1.0.0"
  }
...

sample code (refer to documentation for full details): 示例代码(有关完整详细信息,请参阅文档):

// server.js (Express 4)
var express        = require('express');
var morgan         = require('morgan');
var bodyParser     = require('body-parser');
var methodOverride = require('method-override');
var app            = express();
// Replace your Express 3 code, from
//
// app.use(express.logger('dev'));                 
// app.use(express.bodyParser());
// app.use(express.methodOverride()); 
//
// to:
app.use(morgan('dev')); // log every request to the console
app.use(bodyParser()); // pull information from html in POST
app.use(methodOverride());  // simulate DELETE and PUT
app.listen(8080);

Another option is to change the version of express in your package.json to use Express 3 instead, ie. 另一种选择是改变package.json中的express版本,改为使用Express 3,即。

"express": "~3.0.0" “快递”:“~3.0.0”

I suggest you install the logger package, as it says you should, then use it in your application. 我建议您安装logger软件包,就像它应该的那样,然后在您的应用程序中使用它。 I had the same problem but after I installed the required package and used it eg app.use(logger()) instead of app.use(express-logger()) 我有同样的问题,但在我安装了所需的软件包并使用它之后,例如app.use(logger())而不是app.use(express-logger())

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 错误:大多数中间件(如json)不再与Express捆绑在一起,必须单独安装。请参阅 - Error: Most middleware (like json) is no longer bundled with Express and must be installed separately. Please see 错误:大多数中间件(如cookieParser)不再与Express捆绑在一起,必须单独安装 - Error: Most middleware (like cookieParser) is no longer bundled with Express and must be installed separately 错误:大多数中间件(如bodyParser)不再与Express捆绑在一起 - Error: Most middleware (like bodyParser) is no longer bundled with Express 大多数中间件(如压缩)不再与Express捆绑在一起 - Most middleware (like compress) is no longer bundled with Express 大多数中间件(例如compress)不再与..ERROR捆绑在一起 - Most middleware (like compress) is no longer bundled with .. ERROR 我得到“大多数中间件(如bodyParser),必须单独安装在nodeJS中” - I get “Most middleware (like bodyParser) and must be installed separately in nodeJS” 在Node.js Express上使用中间件设置简单服务器时出错 - Error setting up simple server with middleware on node.js express Node.js Express中间件错误链 - Node.js Express Middleware Error Chain Heroku + Node.js(快速)-应用程序错误 - Heroku + Node.js (express) - Application Error 在node.js中使用express.logger记录错误 - Error logging with express.logger in node.js
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM