“在Azure上上传

时间:2019-10-16 12:17:28

标签: javascript node.js azure

我正面临一个前所未有的问题。 我正在使用由Microsoft Bot Framework提供支持的聊天机器人,因此几周前我已经将项目上传到了Azure,一切正常。

今天,我上传了我的项目的新更新,此版本可在我的计算机上完美运行。但是,当我上传到Azure时,日志将引发此错误

SyntaxError: Unexpected token =
at new Script (vm.js:79:7)
at createScript (vm.js:251:10)
at Object.runInThisContext (vm.js:303:10)
at Module._compile (internal/modules/cjs/loader.js:656:28)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:699:10)
at Module.load (internal/modules/cjs/loader.js:598:32)
at tryModuleLoad (internal/modules/cjs/loader.js:537:12)
at Function.Module._load (internal/modules/cjs/loader.js:529:3)
at Module.require (internal/modules/cjs/loader.js:636:17)
at require (internal/modules/cjs/helpers.js:20:18)
Wed Oct 16 2019 08:25:08 GMT+0000 (Greenwich Mean Time): Application has thrown an uncaught exception and is terminated:

此错误由“ userCourses = {}”第2行引发:

class UserProfil {
userCourses = {}
constructor(login, firstname, lastname, lastaccess) {
    this.login = login;

    this.firstname = firstname;
    this.lastname = lastname;
    this.lastaccess = lastaccess;
}
}

module.exports.UserProfil = UserProfil

但是似乎在每个字符上都抛出错误,例如“ =({”,所以这不是特别之处……这个项目完全可以在我的电脑上工作,而一天前在AZure上也可以工作,所以我真的不知道什么会造成这个大问题

有人已经面临这个吗?

谢谢! :-)

编辑:搜索后,我发现我的计算机运行Nodejs版本12,并且该声明是Nodejs 12中的新增内容,Azure可能运行的是最新的LTS版本(10),这就是为什么它无法正常运行的原因。我已经在计算机上安装了LTS版本,并且抛出的错误与Azure相同:-)

1 个答案:

答案 0 :(得分:1)

在普通JavaScript中,您不能像这样定义类属性。您必须做更多类似的事情:

class UserProfil {
  constructor(login, firstname, lastname, lastaccess) {
      this.login = login;

      this.firstname = firstname;
      this.lastname = lastname;
      this.lastaccess = lastaccess;

      this.userCourses = {};
  }
}

module.exports.UserProfil = UserProfil

More information on JavaScript classes here


我不知道为什么它不能在您的bot中本地工作,除非有某种在本地完成的编译在Azure中没有完成。但这绝对不是有效的JavaScript,并且在任何地方都无法使用。