以下是我在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)
请帮忙!
答案 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”。如果仅导出一个功能,请使用默认导出。