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

时间:2017-06-23 10:30:57

标签: 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-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(世界协调时间):   应用程序抛出了未捕获的异常并被终止:    SyntaxError:在严格模式下使用const 。       在Module._compile(module.js:434:25)       at Object..js(module.js:464:10)       在Module.load(module.js:353:31)       在Function._load(module.js:311:12)       在Module.require(module.js:359:17)       at require(module.js:375:17)       在对象。 (d:\家\网站\ wwwroot的\ node_modules \ MSSQL \ index.js:1:80)       在Module._compile(module.js:446:26)       at Object..js(module.js:464:10)       在Module.load(module.js:353:31)

代码不会在本地抛出错误。

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

请帮忙!

1 个答案:

答案 0 :(得分:1)

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

这是因为您使用的是'strict mode';。在文件的顶部,在javascript中,您使用'use strict';

要详细了解''使用严格&#39 ;;您可以在此处阅读:https://www.w3schools.com/js/js_strict.asp