Node.jsでExpressサーバーを作り、knexでPostgressと繋ぎ、フロントエンドはReactを使っています。
現状、サーバー部分を記載しているapp.jsはrequire文で記載していますが
import文を使っている別ファイルの内容をapp.jsでも使う必要があり、
app.jsをimport文へ書き換えようとしています。
// 現状の正常に動作するapp.js
JavaScript
1const express = require("express"); 2const morgan = require("morgan"); 3const path = require("path"); 4const db = require("./knex.js"); 5const app = express(); 6const bodyParser = require('body-parser');
// 目指すapp.js
JavaScript
1import express from "express"; 2import morgan from "morgan"; 3import path from "path"; 4import db from "./knex.js"; 5import bodyParser from 'body-parser'; 6const app = express();
しかし、この形にすると
//エラー
import express from "express"; ^^^^^^ SyntaxError: Cannot use import statement outside a module
となってしまいます。
StackOverflowでよく言われている解決策のpackage.json
に
"type": "module"
を追記するという方法を試しましたが、そうすると
// エラー
internal/modules/cjs/loader.js:1174 throw new ERR_REQUIRE_ESM(filename, parentPath, packageJsonPath); ^ Error [ERR_REQUIRE_ESM]: Must use import to load ES Module
と言われ、解決策がわかりません。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。