SyntaxError: Unexpected token { when compiling my node.js code
SyntaxError: Unexpected token { when compiling my node.js code
当我尝试 运行 grandstack neo4j graphql api app.
时,第一个 'import' 每次都会出现以下错误
PS C:\Users\grand-stack-starter-master\api> nodemon index.js
[nodemon] 1.19.1
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `node index.js src/index.js`
C:\Users\grand-stack-starter-master\api\src\index.js:1
import { typeDefs } from "./graphql-schema";
^
SyntaxError: Unexpected token {
at Module._compile (internal/modules/cjs/loader.js:723:23)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)
[nodemon] app crashed - waiting for file changes before starting...
下面是我的总筹码 node.js 代码
import { typeDefs } from "./graphql-schema";
import { ApolloServer } from "apollo-server";
import { v1 as neo4j } from "neo4j-driver";
import { makeAugmentedSchema } from "neo4j-graphql-js";
import dotenv from "dotenv";
// set environment variables from ../.env
dotenv.config();
const schema = makeAugmentedSchema({
typeDefs
});
const driver = neo4j.driver(
process.env.NEO4J_URI || "bolt://localhost:7687",
neo4j.auth.basic(
process.env.NEO4J_USER || "neo4j",
process.env.NEO4J_PASSWORD || "xxxx"
)
);
const server = new ApolloServer({
context: { driver },
schema: schema
});
server.listen(process.env.GRAPHQL_LISTEN_PORT, "0.0.0.0").then(({ url }) => {
console.log(`GraphQL API ready at ${url}`);
});
我对每个导入语句都收到此错误。
如果我从代码中删除有问题的导入(例如:import { typeDefs } from "./graphql-schema";),那么我在下一次导入时会遇到同样的错误,如下所示
import { ApolloServer } from "apollo-server";
^
SyntaxError: Unexpected token {
at Module._compile (internal/modules/cjs/loader.js:723:23)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)
[nodemon] app crashed - waiting for file changes before starting...
谁能帮我找出问题所在
您的 package.json 似乎有问题。
当你启动 api 我看到这个命令:
[nodemon] starting `node index.js src/index.js`
所以您没有使用 babel 来转换代码,这可能就是您的导入不起作用的原因。您应该使用 grand-stack-starter(从网站下载)中的 package.json,它调用正确的命令来启动具有 babel 支持的 api 服务器。
"start": "./node_modules/.bin/nodemon --exec babel-node src/index.js"
如您所见,此命令使用 babel-node 来使用 babel 转译您的代码,这增加了对您现在应该正常工作的导入的支持,您可以 运行 api npm 开始。如果您使用 github 存储库中的包,则代码略有不同,您应该使用 npm 命令:
npm start-dev
就我而言,我在使用命令时位于错误的文件夹中,对于遇到同样问题的其他人,这也可能是原因,因此请确保您位于服务器文件夹中。
我的案例是 Express.js.
编码愉快!
当我使用可选链接访问嵌套对象时,我遇到了同样的错误,一旦我删除它,我的错误就解决了。
当我尝试 运行 grandstack neo4j graphql api app.
时,第一个 'import' 每次都会出现以下错误PS C:\Users\grand-stack-starter-master\api> nodemon index.js
[nodemon] 1.19.1
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `node index.js src/index.js`
C:\Users\grand-stack-starter-master\api\src\index.js:1
import { typeDefs } from "./graphql-schema";
^
SyntaxError: Unexpected token {
at Module._compile (internal/modules/cjs/loader.js:723:23)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)
[nodemon] app crashed - waiting for file changes before starting...
下面是我的总筹码 node.js 代码
import { typeDefs } from "./graphql-schema";
import { ApolloServer } from "apollo-server";
import { v1 as neo4j } from "neo4j-driver";
import { makeAugmentedSchema } from "neo4j-graphql-js";
import dotenv from "dotenv";
// set environment variables from ../.env
dotenv.config();
const schema = makeAugmentedSchema({
typeDefs
});
const driver = neo4j.driver(
process.env.NEO4J_URI || "bolt://localhost:7687",
neo4j.auth.basic(
process.env.NEO4J_USER || "neo4j",
process.env.NEO4J_PASSWORD || "xxxx"
)
);
const server = new ApolloServer({
context: { driver },
schema: schema
});
server.listen(process.env.GRAPHQL_LISTEN_PORT, "0.0.0.0").then(({ url }) => {
console.log(`GraphQL API ready at ${url}`);
});
我对每个导入语句都收到此错误。 如果我从代码中删除有问题的导入(例如:import { typeDefs } from "./graphql-schema";),那么我在下一次导入时会遇到同样的错误,如下所示
import { ApolloServer } from "apollo-server";
^
SyntaxError: Unexpected token {
at Module._compile (internal/modules/cjs/loader.js:723:23)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)
[nodemon] app crashed - waiting for file changes before starting...
谁能帮我找出问题所在
您的 package.json 似乎有问题。
当你启动 api 我看到这个命令:
[nodemon] starting `node index.js src/index.js`
所以您没有使用 babel 来转换代码,这可能就是您的导入不起作用的原因。您应该使用 grand-stack-starter(从网站下载)中的 package.json,它调用正确的命令来启动具有 babel 支持的 api 服务器。
"start": "./node_modules/.bin/nodemon --exec babel-node src/index.js"
如您所见,此命令使用 babel-node 来使用 babel 转译您的代码,这增加了对您现在应该正常工作的导入的支持,您可以 运行 api npm 开始。如果您使用 github 存储库中的包,则代码略有不同,您应该使用 npm 命令:
npm start-dev
就我而言,我在使用命令时位于错误的文件夹中,对于遇到同样问题的其他人,这也可能是原因,因此请确保您位于服务器文件夹中。 我的案例是 Express.js.
编码愉快!
当我使用可选链接访问嵌套对象时,我遇到了同样的错误,一旦我删除它,我的错误就解决了。