Node.jsとAzureの開発にはまったく新しいものです。単にAzureのNode.jsアプリケーションでライブラリを必要とすると、500の内部サーバエラーが発生する
Azureに新しいNode.jsウェブサイトアプリを作成しました。私は、次のコードをアップロードすると、それが動作します:
var express = require("express");
var app = express();
app.use(function (req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
app.set('port', process.env.PORT || 8080);
app.get('/', function (req, res) {
res.json({ test: "test" });
});
app.listen(app.get('port'));
しかし、すぐに私が先頭に次の行を追加する:
var sql = require("mssql");
を私は500内部サーバーエラーを受信を開始します。 Azureのログには、次の情報が表示されます。
Fri Jun 23 2017 09:57:43 GMT+0000 (Coordinated Universal Time): Application has thrown an uncaught exception and is terminated: SyntaxError: Use of const in strict mode. at Module._compile (module.js:434:25) at Object..js (module.js:464:10) at Module.load (module.js:353:31) at Function._load (module.js:311:12) at Module.require (module.js:359:17) at require (module.js:375:17) at Object. (D:\home\site\wwwroot\node_modules\mssql\index.js:1:80) at Module._compile (module.js:446:26) at Object..js (module.js:464:10) at Module.load (module.js:353:31)
コードはローカルでエラーをスローしません。
私はいくつかの検索を行いましたが、唯一見つけられるのは、古いバージョンのNode.jsで問題が発生する可能性があることです私は、使用するノードのバージョンがpackages.jsonで6.0.0より大きいはずだと付け加えましたが、これは何もしていないようです。
助けてください!
こんにちはラファエル - 私自身は、『strictモード』をどこにも指定されていませんでした。私が投稿したコードは、文字通りそこにあるすべてのコードです。 – CptCoathanger
私の推測では、azureはデフォルトで '' strict mode '; ''を使用しています。あなたのコードを動作させるために、 '' var''を使って変数を宣言するのではなく、 '' let''または '' const''を宣言します。実行する変数を変更することができる定数には '' const ''を使い、実行するには '' let''を使います。 –
お時間をいただきありがとうございます。 Expressではなぜ 'var'が動作するのですが、mssqlでは必要としませんか? – CptCoathanger