2017-11-20 3 views
0

は今朝まで罰金働いて、今、突然、私はそのCors is not a functionnodejs +は表現:CORSは

私のコードCORSの

import * as Cors from "cors"; 
... 

const corsOptions: Cors.CorsOptions = { 
    allowedHeaders: ["Origin", "X-Requested-With", "Content-Type", "Accept", "X-Access-Token", "Authorization"], 
    credentials: true, 
    methods: "GET,HEAD,OPTIONS,PUT,PATCH,POST,DELETE", 
    origin: "*", 
    preflightContinue: true 
}; 

createConnection(ormConfig).then(async connection => { 
    // run pending migrations 
    await connection.runMigrations(); 
    // create express server 
    const app = express(); 
    app.use(bodyParser.json({limit: "50mb"})); 
    app.use(bodyParser.urlencoded({limit: "50mb", extended: true})); 
    // register cors 
    app.use(Cors(corsOptions)); //<---error occurs here 
    // register all controllers 
    useExpressServer(app, { 
     routePrefix: "/api", 
     controllers: [ 
      __dirname + "/controllers/**/*{.js,.ts}" 
     ], 
     authorizationChecker: async (action: any, roles: string[]) => { 
      return JwtAuthorizationMiddleware.checkIsAuthorized(action, roles); 
     }, 
     currentUserChecker: async (actions: any) => { 
      return JwtAuthorizationMiddleware.extractUserFromJwtToken(actions); 
     } 
    }); 

    // start the express server 
    const port: number = +(process.env.PORT || 44320); 
    app.listen(port, (err: Error) => { 
     console.log(`App listening on port ${port}`); 
     console.log("Press Ctrl+C to quit."); 
    }); 
}).catch(error => console.error("TypeORM connection error: ", error)); 

現在のバージョンを知らせるタイプのエラーを取得しています機能ではありませんし、ノード

cors: "^2.8.4" 
Node: v8.4.0 

最近、私は次のパッケージが含まれている場合、金曜日に行われた変更のみ

multer: "^1.3.0" 
@google-cloud/datastore: "^1.1.0" 
@google-cloud/storage: "^1.4.0" 

すべてのものが今まで働いていましたが、同じバージョンがgcloudにデプロイされています。このため、私は突然このエラーが発生し、何が原因か分かりません。

すべてのヘルプはあなたがあなたのファイルの先頭に、そのような

const cors = require('cors'); 

として何かを持っている必要があり、その後、cors、ないCorsとしてモジュールを参照してください

+0

あなたは 'app.use(Cors.cors(corsOptions));'のようなものを試しましたか?違いがあれば疑問だが、私は 'cors'が他の多くの機能の一部であるかもしれないと仮定している。 – brandNew

+0

私はそれを試しました、私は 'rm -rf node_modules'を試してからパッケージを再インストールして同じエラーを得ました –

答えて

1

を大幅に高く評価されます。

+0

私は持っているインポートを表示するために質問を更新します –

0

私はPEBKACであることが判明した問題を発見しました。

gcloudでファイルのアップロードと保存を実装するときに、gcloudでCORSを有効にして、プロジェクトのルートに設定ファイルを保存していた場合、このファイルはcors.jsonと呼ばれていました。

上記の私の質問に投稿されたコードでは、cors NPMパッケージではなく、私のcors.jsonファイルを読み込んでいました。

このレッスンで学んだレッスンは、他の誰かが私が作ったのと同じルーキーミスをすると、ファイルの名前とファイルの場所を慎重にする必要があります。