我正在尝试运行node.js后端服务器。我在 Node.js 文件中导入时收到错误
unexpected reserved word
。
文件
core.module.js
中的行是:
'use strict';
import lodashMixins from './lodashMixins.js'
... other imports and configurations ...
我启动简单的命令:
node core.module.js
这并不是罕见的错误,但通常会发生在其他库中。我还没有看到 Node.js 的解决方案。我应该如何解决这个问题?我正在使用 Windows Server。
编辑:我发现它是ES6,但我如何启动它?它看起来像应用程序的后端,但我不知道应该使用什么命令来启动它而不会出现错误。
import
是 ECMAScript 2015 (ES6) standard
的一部分,正如上面 Amit
提到的,它目前尚未在 Nodejs 中原生实现。
babel
这样的转译器来运行您的es6
脚本
npm install babel
基于此的示例答案
app.js
import {helloworld,printName} from './es6'
helloworld();
printName("John");
es6.js
module.exports = {
helloworld: function() { console.log('hello world!'); },
printName: function(name) { console.log(name); }
}
并在
start.js中使用
require hook
require("babel/register");
var app = require("./app.js");
并启动您的应用程序
node start.js
编辑 以上答案是基于
babel v5.8.23
。为了babel >= v6
在
start.js中使用
require hook
作为
require('babel-core/register');
require("./app.js");
此外,默认情况下不启用转换。所以你需要安装一个
preset
。在这种情况下使用 es2015
npm install babel-preset-es2015
并在根文件夹中的
.babelrc
文件中使用它
{
"presets": ["es2015"]
}
当我在 Visual Studio 之外手动安装这些工具时,我遇到了这个问题。但 Visual Studio 附带了多个用于现代 Web 开发工作流程的开源命令行工具。您可以通过以下方式告诉 Visual Studio 使用与您手动安装的版本相同的版本
转到工具 –> 选项 –> 项目和解决方案 –> 外部 Web 工具
或
这可能不是官方答案,但我在搜索“意外的保留字”后偶然发现了这里。 经过一番探索后,我发现我的问题是,事实上,我只需要在从 origin/rebase 更新我的分支后运行
npm install
即可。 希望这可以帮助那些正在疯狂地恢复代码并试图找出他们破坏了什么的人! :)
就我而言,问题是我在 forEach 块中使用
aait
以及使用 Javascript 的 AWS Lamba
describeSnapshotResponse.Snapshots
.map(currentSanpshot => currentSanpshot.SnapshotId)
.forEach(currentSanpshotId) => {
console.log("About to delete snapshot:", currentSanpshotId);
const deleteSnapshotCommand = new EC2.DeleteSnapshotCommand({
SnapshotId: currentSanpshotId
});
const deleteSnapshotResponse = await ec2Client.send(deleteSnapshotCommand);
console.log("Delete snapshot:", currentSanpshotId);
});
在块参数上使用 async 修饰符可以实现如 在 Yilmaz 响应中使用 async/await 和 forEach 循环
所示的技巧 describeSnapshotResponse.Snapshots
.map(currentSanpshot => currentSanpshot.SnapshotId)
.forEach(async (currentSanpshotId) => {
console.log("About to delete snapshot:", currentSanpshotId);
const deleteSnapshotCommand = new EC2.DeleteSnapshotCommand({
SnapshotId: currentSanpshotId
});
const deleteSnapshotResponse = await ec2Client.send(deleteSnapshotCommand);
console.log("Delete snapshot:", currentSanpshotId);
});