A diferença entre" require(x) " e import x

Acabei de começar a trabalhar num pequeno projecto de nó que irá interagir com um MongoDB. No entanto, não consigo fazer com que os módulos do nó relevantes importem correctamente, apesar de Os ter instalado correctamente via npm.

por exemplo, o seguinte código lança e erro, dizendo-me que "express não tem exportação padrão":

import express from "express";

No entanto, este código funciona:

const express = require("express");

Então minha pergunta é, Qual é a diferença em como os métodos de importação e variável/require função?Eu gostaria de corrigir o que está a atormentar as minhas importações no projecto, pois parece provável que cause problemas adicionais ao longo da estrada.

Author: Matheus Lacerda, 2017-10-11

3 answers

Há muitos recursos online para a sua pergunta, mesmo assim. Você pode ver aqui, mas a resposta simples que me ajuda a entender a diferença entre require e import é Usando nó.js require vs. ES6 importação / exportação

Com uma imagem simples:

enter image description here

Cortesia: https://stackoverflow.com/users/5884955/prosti

 19
Author: don't angry me, 2017-10-11 00:38:07

A principal diferença entre require e import, é que require vai verificar automaticamente node_modules para encontrar módulos, mas import, que vem de ES6, não. Mas agora a maioria das pessoas iria usar babel para compilar import e export, que vai fazer import agir da mesma forma como require, mas a futura versão do Nó.js pode suportar import em si mesmo (na verdade, a versão experimental já fez), e a julgar pelo nó.js ' notes, import won't support node_modules, it base on ES6, and must specify the path of the modulo.

Então eu sugeriria que você não use import com babel, mas este recurso ainda não está confirmado, Ele pode suportar node_modules no futuro, quem saberia?

 8
Author: Ayon Lee, 2017-10-11 02:03:36

Deixe-me dar um exemplo para incluir o módulo expresso com require & import

-require

var express = require('express');

-importação

import * as  express from 'express';

Então depois de usar qualquer uma das afirmações acima teremos uma variável chamada' express ' conosco. Agora podemos definir a variável ' app ' como,

var app = express(); 

Então usamos ' require 'com' CommonJS 'e' import 'com'ES6'.

Para mais informações sobre 'require' e 'import', Leia através das ligações abaixo.

Require - requerendo módulos no nó.js: Tudo o que precisas de saber

Import - uma actualização dos módulos ES6 no nó.js

 1
Author: saikiran_hegde, 2018-08-09 05:29:35