【问题标题】:Unexpected token import express js意外的令牌导入快递js
【发布时间】:2019-08-15 15:07:14
【问题描述】:

以下是我在 GitHub 上的项目位置:

https://github.com/nandy2013/MERN-Stack-Dev

我只是想将 js 文件中的方法导入另一个具有以下实现的 js 文件:

is-empty.js

const isEmpty = value =>
value === undefined ||
value === NULL ||
(typeof value === 'object' && Object.keys(vale).length === 0) ||
(typeof value === 'string' && value.trim().length === 0);

module.exports = isEmpty;

register.js

//code
import isEmpty from './is-empty';
//code

片段:

我收到以下错误消息

C:\Users\1217688\Desktop\devconnector\validation\register.js:2 导入 isEmpty from './is-empty'; ^^^^^^

SyntaxError:意外的令牌导入 在新脚本 (vm.js:51:7) 在 createScript (vm.js:138:10) 在 Object.runInThisContext (vm.js:199:10) 在 Module._compile (module.js:624:28) 在 Object.Module._extensions..js (module.js:671:10) 在 Module.load (module.js:573:32) 在 tryModuleLoad (module.js:513:12) 在 Function.Module._load (module.js:505:3)

请帮忙!

【问题讨论】:

标签: node.js express


【解决方案1】:

默认情况下,node.js 不支持 ECMAScript 的 import 语句,所以不要写 import isEmpty from './is-empty'; 你应该写 const isEmpty = require('./is-empty');

如果您更喜欢使用 import 语句,您可以通过向 Node.js 添加 --experimental-modules 参数来启用 ECMAScript 模块支持。但请注意,它们的支持仍处于试验阶段,不建议在生产环境中使用它们。在您的情况下,您需要编辑项目的package.json 文件并将start 脚​​本命令替换为:

node --experimental-modules ./server.js

【讨论】:

  • 非常感谢!它帮助了我!
【解决方案2】:

node.js 最新版本支持 ES6。所以你可以直接导出你的函数并导入它。

const isEmpty = value => {
  value === undefined ||
    value === NULL ||
    (typeof value === 'object' && Object.keys(vale).length === 0) ||
    (typeof value === 'string' && value.trim().length === 0);
}

export default isEmpty; 

在您的其他文件中,您可以导入为“import isEmpty from './isEmpty'”。如果您只导出一个函数,请使用默认导出。

【讨论】:

    猜你喜欢
    • 2016-06-18
    • 2018-05-23
    • 1970-01-01
    • 2019-03-21
    • 2020-03-16
    • 2020-05-07
    • 1970-01-01
    • 2012-02-10
    • 2017-05-20
    相关资源
    最近更新 更多