やろうしていること
下記、リンク記事に従い、ローカルでAPIサーバーを構築しています。
https://www.aizulab.com/blog/graphql-compose/
エラーを解消して、express-graphql
を読めるようにしたい。
環境
nodejs: v14.17.0
OS: MacOS
詳細な状況
このように記述し、node server.js
を実行しました。
// ./server.js import express from "express"; import bodyParser from "body-parser"; import DB from "./utils/database.js"; import graphqlExpress from 'express-graphql'; import schema from "./schemata/user.js"; const PORT = 8080; const app = express(); DB.connect(); app.use("/hello", (req, res) => { res.send("Hello World!"); }); app.use( "/graphql", graphqlHTTP({ schema: schema, graphiql: true, }) ); app.listen(PORT, () => { console.log(`Started on port ${PORT}`); });
そうすると、このようなエラーが出ました。
/$ node server.js DB接続OK file:/server.js:15 graphqlExpress({ schema, graphiql: true }) ^ TypeError: graphqlExpress is not a function at file://server.js:15:3 at ModuleJob.run (internal/modules/esm/module_job.js:152:23) at async Loader.import (internal/modules/esm/loader.js:177:24) at async Object.loadESM (internal/process/esm_loader.js:68:5)
TypeError: graphqlExpress is not a function
について調べたところ、
下記の記事を見つけ、このように書き換えました。
https://qiita.com/shibuya01055/items/2d6846efeefc9800943a
import graphqlExpress from 'express-graphql'; ↓ const { graphqlExpress } = require("express-graphql");
そうすると、エラーメッセージは変わり、このようになりました。
ReferenceError: require is not defined
このメッセージについても調べてみましたが、決定的な解決法がわからず、詰まっている状況です。
他にやってみたこととしては、package.json
をこのようにしました。
{ "type": "module" }
node.jsのバージョンの問題なのかわかりませんが、解決できていない状況です。
疑わしいところ等あればご教示いただきたく、宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー