2016-03-08 130 views
0

繼快車3 to 4 migration guide之後,我從我的應用程序中得到了超時。沉默,沒有在日誌輸出,只是超時,讓我不知道如何調試。難以快速升級到4.x

我希望有人能看到我在下面所犯的錯誤。這是我之前和之後的服務器和軟件包文件。更改package.json後,我做了npm install,並啓動並重新啓動節點。

package.js之前......之前

"express": "~3.3.5", 

server.js ......之後

var express = require('express'); 
var app = express(); 
app.use(passport.initialize()); 

app.use(express.static('./public')); 
app.use(express.compress()); 
app.use(express.methodOverride()); 
app.use(express.bodyParser()); 

package.js ...

"express": "*", 
"serve-static": "*", 
"compression": "*", 
"method-override": "*", 
"body-parser": "*", 

server.js後...

var express = require('express'); 
var app = express(); 
app.use(passport.initialize()); 

var serveStatic = require('serve-static'); 
var compression = require('compression'); 
var methodOverride = require('method-override'); 
var bodyParser = require('body-parser'); 

app.use(serveStatic('./public')); 
app.use(compression); 
app.use(methodOverride); 
app.use(bodyParser); 

我希望我在這裏介紹相關位。我有點迷路,沒有錯誤可循。

+1

我不知道你的代碼,但我記錄了一個關於爲我的項目升級的視頻:https://www.youtube.com/watch?v = xjSnF45uGzU - 它可能有幫助,但它基於您使用的相同指南 –

+0

@DerickBailey - 它是一部優秀的視頻。謝謝。使用它幫助我做得更好。可悲的是,我仍然停止了同樣的問題。 – user1272965

+0

不需要'serve-static',因爲你可以使用內置的'express.static'。 – jfriend00

回答

1

一個問題是,您需要執行中間件生成功能,並將它們的返回值改爲.use()而不是中間件生成功能本身。示例:

app.use(compression()); 
app.use(methodOverride()); 
app.use(bodyParser.urlencoded({ extended: false })); 
app.use(bodyParser.json()); 

當然,每個中間件的任何可選參數都取決於您的需要,因此您需要查閱模塊的文檔。

+0

謝謝。這一定是我的問題。一天之後,我決定用新的東西來構建一個新的應用程序,並將我的舊東西放入其中。一段時間,但至少我可以取得進展。 – user1272965