首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SyntaxError:意外令牌{编译node.js代码时

SyntaxError:意外令牌{编译node.js代码时
EN

Stack Overflow用户
提问于 2019-10-14 09:54:21
回答 3查看 16.5K关注 0票数 2

每次使用第一个“导入”时,当我试图运行neo4j graphql应用程序时,我都会得到下面的错误。

代码语言:javascript
复制
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代码

代码语言:javascript
复制
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语句,我都会得到这个错误。如果我从代码(ex: import { typeDefs } from“./graphql”)中删除有问题的导入,则在下一个导入时得到相同的错误,如下所示

代码语言:javascript
复制
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...

有人能帮我找出哪里出了问题吗

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-10-14 10:28:09

看起来你的package.json有什么问题。

当您启动api时,我会看到以下命令:

代码语言:javascript
复制
[nodemon] starting `node index.js src/index.js`

因此,您没有使用babel来传输代码,这可能就是您的导入无法工作的原因。您应该在大堆栈启动程序(从网站下载)中使用package.json,它调用正确的命令来启动api服务器,并提供babel支持。

代码语言:javascript
复制
"start": "./node_modules/.bin/nodemon --exec babel-node src/index.js"

正如您可以看到的那样,这个命令使用babel节点来传输您的代码,这增加了对导入的支持,这些导入现在应该能够正常工作,并且您可以只使用npm运行api。如果您使用github存储库中的包,代码就没有什么不同,您应该使用npm命令:

代码语言:javascript
复制
npm start-dev
票数 1
EN

Stack Overflow用户

发布于 2020-07-27 13:31:48

在我的例子中,当使用命令时,我在错误的文件夹中,对于其他有同样问题的人来说,这也可能是原因,所以请确保您在服务器文件夹中。我的案子是Express.js的。

编码愉快!

票数 1
EN

Stack Overflow用户

发布于 2022-01-24 09:49:40

当我使用可选链接访问嵌套对象时,我得到了同样的错误,一旦我删除了它,我的错误就解决了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58374279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档