意外的令牌导入Express JS

时间:2019-03-25 11:23:16

标签: node.js express

以下是我在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

代码段:

enter image description here 我收到以下错误消息

  

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)

请帮忙!

2 个答案:

答案 0 :(得分:1)

默认情况下,node.js不支持ECMAScript的import语句,因此应该编写import isEmpty from './is-empty';而不是编写const isEmpty = require('./is-empty');

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

node --experimental-modules ./server.js

答案 1 :(得分:0)

最新版本的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; 

在其他文件中,您可以将其导入为“从'./isEmpty'导入isEmpty”。如果仅导出一个功能,请使用默认导出。