【问题标题】:Why am I getting a syntax error on my node production server build but not my local build?为什么我的节点生产服务器版本出现语法错误,但本地版本却没有?
【发布时间】:2017-08-16 02:24:07
【问题描述】:

我希望你能帮助我。我对节点相当陌生,正在构建我的第一个节点应用程序。

我在 node.js 中构建了一个应用程序。在本地运行时,它可以正常工作并且符合预期。
尝试在我们的内部生产服务器上运行它时,我收到一条错误消息。

开始模板文字标记似乎有问题。有问题的文件使用了一个简单的模块导出功能。我已经精简了代码以使其更易于阅读。见下文:

    exports.templateModule = function(markup, edmData) {
    var template = `<!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head></head>
    <body></body>
    </html>
    `;
    return template;

我正在使用节点版本 v6.11.0。

生产服务器在 linux 上运行。

下面的 package.json 文件以防万一。

{
  "name": "template",
  "version": "0.0.0",
  "description": "A simple tempate test.",
  "main": "app.js",
  "scripts": {
    "start": "node app.js"
  },
  "dependencies": {
    "ejs": "^2.5.6",
    "ejs-lint": "^0.3.0",
    "express": "4.15.2",
    "glob": "^7.1.2",
    "node-dev": "^3.1.3"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/heroku/node-js-getting-started"
  },
  "license": "MIT",
  "devDependencies": {
    "node-dev": "^3.1.3"
  }
}

如果可以的话,我会提供您需要的任何其他信息。

任何帮助或见解将不胜感激。
谢谢

【问题讨论】:

  • 试试这样:var template = '&lt;!DOCTYPE html&gt; &lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt; ';
  • 生产服务器上的 Node.js 版本是多少?在您的服务器终端中输入node -v 进行查找。
  • @KayvanMazaheri。我认为你在做某事。我相信版本太旧了。我的本地节点构建是 v6,但生产服务器正在运行 node
  • @saikatchakrabortty 感谢您的意见。我相信生产服务器正在运行节点的早期版本,这就是模板文字不起作用的原因。理想情况下,我想避免使用模板字符串,因为我想要有很多 HTML 标记并且它仍然清晰易读。

标签: node.js express


【解决方案1】:

NodeJS v4.0.0 中添加了模板字符串。

Node.js v4.0.0 包含 V8 v4.5,与今天与 Chrome 网络浏览器一起发布的 V8 版本相同。
这为 Node.js 用户带来了许多好处,最值得注意的是大量默认启用的新 ES6 功能,包括块作用域、类、类型化数组(Node 的缓冲区现在由 Uint8Array 支持)、生成器、Promises、Symbols、模板字符串、集合(Map、Set 等)以及 V8 v4.5 的新增功能,箭头函数。

如果您在生产服务器上使用旧版本的 Node.js,请考虑将其升级到更新的版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-07
    • 1970-01-01
    • 2021-09-14
    • 2020-12-03
    • 1970-01-01
    • 2015-01-11
    • 1970-01-01
    相关资源
    最近更新 更多