Node.js - SyntaxError: import: Μη αναμενόμενη εισαγωγή συμβόλου

Δεν καταλαβαίνω τι συμβαίνει. Κόμβος v5.6.0 NPM v3.10.6

Ο κώδικας:

function (exports, require, module, __filename, __dirname) {
    import express from 'express'
};

Το σφάλμα:

SyntaxError: Unexpected token import
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:387:25)
    at Object.Module._extensions..js (module.js:422:10)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Function.Module.runMain (module.js:447:10)
    at startup (node.js:140:18)
    at node.js:1001:3
Λύση

Ενημέρωση 3: Από τον Node 13, μπορείτε να χρησιμοποιήσετε είτε την επέκταση .mjs, είτε να ορίσετε "type": "module" στο package.json σας. Δεν χρειάζεται να χρησιμοποιήσετε τη σημαία --experimental-modules.

Ενημέρωση 2: Από το Node 12, μπορείτε να χρησιμοποιήσετε είτε την επέκταση .mjs, είτε να ορίσετε "type": "module" στο package.json σας. Και πρέπει να τρέξετε το node με τη σημαία --experimental-modules.

Ενημέρωση: Στο Node 9, είναι ενεργοποιημένο πίσω από μια σημαία και χρησιμοποιεί την επέκταση .mjs.

node --experimental-modules my-app.mjs

Αν και η import είναι πράγματι μέρος του ES6, δυστυχώς δεν υποστηρίζεται ακόμα από το NodeJS από προεπιλογή, και μόλις πολύ πρόσφατα απέκτησε υποστήριξη στους φυλλομετρητές.

Βλέπε πίνακας συμβατότητας φυλλομετρητών στο MDN και αυτό το θέμα του Node.

Από το Update on ES6 Modules in Node.js του James M Snell's (Φεβρουάριος 2017):

Οι εργασίες βρίσκονται σε εξέλιξη, αλλά θα χρειαστούν κάποιο χρόνο - Προς το παρόν υπολογίζουμε περίπου ένα χρόνο τουλάχιστον.

Μέχρι να εμφανιστεί η υποστήριξη εγγενώς, θα πρέπει να συνεχίσετε να χρησιμοποιείτε τις κλασικές δηλώσεις require:

const express = require("express");

Αν θέλετε πραγματικά να χρησιμοποιήσετε τα νέα χαρακτηριστικά του ES6/7 στο NodeJS, μπορείτε να το μεταγλωττίσετε χρησιμοποιώντας το Babel. Εδώ είναι ένα παράδειγμα διακομιστή.

Σχόλια (11)

Δυστυχώς, το Node.js δεν υποστηρίζει ακόμα την "εισαγωγή" του ES6.

Για να πετύχετε αυτό που προσπαθείτε να κάνετε (εισαγωγή της μονάδας Express), αυτός ο κώδικας θα πρέπει να αρκεί

var express = require("express");

Επίσης, βεβαιωθείτε ότι έχετε εγκαταστήσει το Express εκτελώντας την εντολή

$ npm install express

Ανατρέξτε στα Node.js Docs για περισσότερες πληροφορίες σχετικά με την εκμάθηση του Node.js.

Σχόλια (5)

Error: SyntaxError: ή SyntaxError: export


Λύση: Αλλάξτε όλες τις εισαγωγές σας ως παράδειγμα

Σχόλια (2)