在Azure上的my Node.js应用程序中只需要一个库就会导致500个内部服务器错误

在Azure上的my Node.js应用程序中只需要一个库就会导致500个内部服务器错误,node.js,azure,Node.js,Azure,我是Node.js和Azure开发的新手,所以我可能会做一些愚蠢的事情 我在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-

我是Node.js和Azure开发的新手,所以我可能会做一些愚蠢的事情

我在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日志显示:

2017年6月23日星期五09:57:43 GMT+0000(协调世界时): 应用程序引发了未捕获的异常并被终止: 语法错误:在严格模式下使用const。 在模块处编译(Module.js:434:25) at Object..js(module.js:464:10) 在Module.load(Module.js:353:31) at函数。_加载(module.js:311:12) at Module.require(Module.js:359:17) 根据需要(模块js:375:17) 反对。(D:\home\site\wwwroot\node\u modules\mssql\index.js:1:80) 在模块处编译(Module.js:446:26) at Object..js(module.js:464:10) 在Module.load(Module.js:353:31)

代码不会在本地抛出错误

我用谷歌搜索了一下,唯一能找到的是,这可能是Node.js旧版本的问题。我尝试在packages.json中添加要使用的节点版本应该大于6.0.0,但这似乎没有任何作用


请帮忙

您收到的信息是您无法使用:
var sql=require(“mssql”)
但是
const sql=require(“mssql”)

这是因为您使用的是
“严格模式”。在文件的顶部,在javascript中,使用
“use strict”


了解有关“严格使用”的更多信息您可以在这里阅读:

嗨,拉斐尔-我自己在任何地方都没有指定“严格模式”。我发布的代码实际上就是所有的代码。我猜azure使用的是
“严格模式”默认情况下。要使代码正常工作,您将无法使用
var
来声明变量,而只能使用
'let'
'const'
。使用
'const'
表示常量变量(如需要模块),使用
'let'
表示可以更改执行的变量。感谢您花时间回答。为什么“var”适用于express require,而不适用于mssql require?你让我明白了。我实际上不知道,但我会尝试使用
'const'
,看看它是否有效。顺便说一句,出于性能原因,我不建议使用
'var
'而不是
'const'
。这似乎已经做到了。将“var”更改为“const”可以实现这一点。我不知道为什么只有mssql需要“const”,而express对“var”很满意!非常感谢你的帮助,伙计!