【问题标题】:Property 'start' does not exist on type 'ApolloServer'“ApolloServer”类型上不存在属性“start”
【发布时间】:2021-03-29 17:25:13
【问题描述】:

我可能遗漏了一个明显的设置或其他东西,但由于某种原因 VS Code 没有看到 ApolloServer.start,并且我收到一个内联错误:

Property 'start' does not exist on type 'ApolloServer'.

谁能看到我错过了什么?它通过在服务器上调用通常的listen 方法来工作,但我正在尝试添加中间件,这是apollo's official docs 记录的流程。

tsconfig

{
    "compilerOptions": {
        "baseUrl": ".",
        "target": "es5",
        "module": "commonjs",
        "moduleResolution": "node",
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "types": ["node"],
        "esModuleInterop": true,
    },
    "include": [
        "apollo-server/*"
    ],
    "exclude": ["node_modules"]
}

index.ts

#!/usr/bin/env node

import express from 'express'
import { ApolloServer, gql } from 'apollo-server-express'
import { readFileSync } from 'fs'
import { resolvers } from './resolvers'

const typeDefs = gql`readFileSync('./schema.graphql').toString('utf-8')`

async function startServer() {
    const server = new ApolloServer({
        typeDefs,
        resolvers,
    })
    
    await server.start() // <---- VSCode complains here
    const app = express()
    server.applyMiddleware({ app })
}

【问题讨论】:

    标签: visual-studio-code apollo-server tsconfig


    【解决方案1】:

    更新

    这个问题是关于 Apollo Server 2.0 的。此后链接已更改,Apollo 现在已在 3.0 版中启用。如果您不依赖于版本 2,我建议您将依赖项更新到 v3。对于那些坚持这一点的人,这里是模式:

    // The ApolloServer constructor requires two parameters: your schema
    // definition and your set of resolvers.
    const server = new ApolloServer({ typeDefs, resolvers });
    
    // The `listen` method launches a web server.
    server.listen().then(({ url }) => {
      console.log(`?  Server ready at ${url}`);
    });
    

    Here's a fresh URL to confirm it in the docs

    FWIW,我在发布问题后立即找到了它。这是一种已弃用的模式。 (已删除旧链接)

    【讨论】:

    • 链接失效了
    • @JonathanBareket - 更新了新的链接和代码。
    猜你喜欢
    • 2021-01-09
    • 2021-07-10
    • 2017-07-22
    • 2023-03-26
    • 2023-04-02
    • 2019-12-20
    • 2021-12-07
    • 2016-03-14
    相关资源
    最近更新 更多