我正在学习node.js,想知道为什么它使用require
语法而不是React使用的import
语法。
即
const Validator = require("validator");
VS
import Validator from "validator";
我相信import
是es6,但我不认为这可以解释为什么它不在节点中使用。
答案 0 :(得分:2)
import
和default
是ES6的新功能,尚未被节点使用。 Node is actually already implementing the new features as experiment though:带有--experimental-modules
标志,仅适用于扩展名为.mjs
的文件。
像babel这样的编译器使编写现代的,经过规范认可和/或实验性的ECMAScript成为可能。在像Webpack这样的捆绑软件和像babel这样的编译器的生态系统中,编写易于维护的,面向未来的javascript变得很容易,而由于将代码转换为commonjs
(这种格式您可以识别为require
(旧式import
)和module.exports
(旧式export
)。
答案 1 :(得分:1)
答案 2 :(得分:1)
我相信import是es6,但我不认为这解释了为什么它不是 在节点中使用。
就像NodeJS实现其整个库的方式一样,大量的异步函数仅支持基于回调的方法。通过这种方式思考,您将意识到,迟早,NodeJS框架肯定会支持import
语法,并将所有这些异步功能升级为支持基于Promise的。