Quand j'ai commencé avec express, j'ai toujours voulu une solution pour utiliser l'importation à la place
const express = require("express");
// to 
import express from "express"
Beaucoup de temps passent par cette ligne: - Unfortunately, Node.js doesn't support ES6's import yet.
Maintenant, pour aider les autres, je crée de nouvelles solutions ici 
1) esm : -
Le chargeur de module ECMAScript brillamment simple, sans babel, sans bundle. faisons en sorte que ça marche
  yarn add esm / npm install esm
créez start.js ou utilisez votre espace de noms
 require = require("esm")(module/*, options*/)
 // Import the rest of our application.
 module.exports = require('./src/server.js')
 // where server.js is express server start file
Changement de votre package.josnchemin d'accèsstart.js
  "scripts": {
    "start": "node start.js",
    "start:dev": "nodemon start.js",
  },
  "dependencies": {
+    "esm": "^3.2.25",
  },
  "devDependencies": {
+   "nodemon": "^1.19.2"
  }
2) Babel js : -
Cela peut être divisé en 2 parties 
a) Solution 1 grâce à timonweb.com
b) Solution 2
utiliser Babel 6 (ancienne version de babel-preset-stage-3 ^ 6.0 ) créer un .babelrcfichier dans votre dossier racine
{
    "presets": ["env", "stage-3"]
}
Installer babel-preset-stage-3
yarn add babel-cli babel-polyfill babel-preset-env bable-preset-stage-3 nodemon --dev
Changement dans package.json
"scripts": {
+   "start:dev": "nodemon --exec babel-node -- ./src/index.js",
+   "start": "npm run build && node ./build/index.js",
+   "build": "npm run clean && babel src -d build -s --source-maps --copy-files",
+   "clean": "rm -rf build && mkdir build"
},
"devDependencies": {
+    "babel-cli": "^6.26.0",
+    "babel-polyfill": "^6.26.0",
+    "babel-preset-env": "^1.7.0",
+    "babel-preset-stage-3": "^6.24.1",
+    "nodemon": "^1.19.4"
},
Démarrez votre serveur
yarn start / npm start
Oooh non nous créons un nouveau problème 
regeneratorRuntime.mark(function _callee(email, password) {
^
ReferenceError: regeneratorRuntime is not defined
Cette erreur ne survient que lorsque vous utilisez async / wait dans votre code. Utilisez ensuite polyfill qui inclut un runtime de régénérateur personnalisé et core-js. ajouter par-dessusindex.js 
import "babel-polyfill"
Cela vous permet d'utiliser async / wait
utiliser Babel 7
Besoin de mettre à jour chaque élément de votre projet, commençons par babel 7 .babelrc
{
  "presets": ["@babel/preset-env"]
}
Quelques changements dans package.json
"scripts": {
+  "start:dev": "nodemon --exec babel-node -- ./src/index.js",
+  "start": "npm run build && node ./build/index.js",
+  "build": "npm run clean && babel src -d build -s --source-maps --copy-files",
+  "clean": "rm -rf build && mkdir build",
    ....
}
"devDependencies": {
+   "@babel/cli": "^7.0.0",
+   "@babel/core": "^7.6.4",
+   "@babel/node": "^7.0.0",
+   "@babel/polyfill": "^7.0.0",
+   "@babel/preset-env": "^7.0.0",
+   "nodemon": "^1.19.4"
....
}
et utiliser import "@babel/polyfill"sur le point de départ
import "@babel/polyfill"
import express from 'express'
const app = express()
//GET request
app.get('/', async (req, res) {
  // await operation
  res.send('hello world')
})
app.listen(4000, () => console.log('🚀 Server listening on port 400!'))
Pensez-vous pourquoi start:dev 
Sérieusement. C'est une bonne question si vous êtes nouveau. Chaque changement que vous êtes sanglier avec le serveur de démarrage à chaque fois, puis utilisez yarn start:devcomme serveur de développement chaque changement de serveur de redémarrage automatiquement pour plus d'informations sur nodemon