GraphQL的最低必需节点版本?
我正在尝试获取在Node.js环境中作为服务器工作的GraphQL.js的参考实现。 请注意,我对Node.js的使用经验有限。 现在,我正在使用node
v4.2.6,它是Ubuntu的Ubuntu 16.04的最新软件包。
官方文件说,这个脚本应该工作:
var express = require('express'); var graphqlHTTP = require('express-graphql'); var { buildSchema } = require('graphql'); // Construct a schema, using GraphQL schema language var schema = buildSchema(` type Query { hello: String } `); // The root provides a resolver function for each API endpoint var root = { hello: () => { return 'Hello world!'; }, }; var app = express(); app.use('/graphql', graphqlHTTP({ schema: schema, rootValue: root, graphiql: true, })); app.listen(4000); console.log('Running a GraphQL API server at localhost:4000/graphql');
这失败了一个语法错误:
server.js:3 var { buildSchema } = require('graphql'); ^ SyntaxError: Unexpected token { at exports.runInThisContext (vm.js:53:16) at Module._compile (module.js:374:25) at Object.Module._extensions..js (module.js:417:10) at Module.load (module.js:344:32) at Function.Module._load (module.js:301:12) at Function.Module.runMain (module.js:442:10) at startup (node.js:136:18) at node.js:966:3
express-graphql项目站点显示了一个截然不同的脚本,但是我必须单独组装一个模式。 GraphQL.js项目站点具有用于组装模式的脚本:
import { graphql, GraphQLSchema, GraphQLObjectType, GraphQLString } from 'graphql'; var schema = new GraphQLSchema({ query: new GraphQLObjectType({ name: 'RootQueryType', fields: { hello: { type: GraphQLString, resolve() { return 'world'; } } } }) });
这也失败了一个语法错误:
server.js:1 (function (exports, require, module, __filename, __dirname) { import { ^^^^^^ SyntaxError: Unexpected reserved word at exports.runInThisContext (vm.js:53:16) at Module._compile (module.js:374:25) at Object.Module._extensions..js (module.js:417:10) at Module.load (module.js:344:32) at Function.Module._load (module.js:301:12) at Function.Module.runMain (module.js:442:10) at startup (node.js:136:18) at node.js:966:3
我猜测也许Node.js的v4.2.6太旧了。 那是对的吗? 如果是这样,使用GraphQL.js和express-graphql
所需的Node.js的最低版本是express-graphql
? 而且,如果这不是我的问题…任何想法是什么?
该教程的先决条件是:
在开始之前,您应该安装Node v6 […]
尽pipe要公平,但还是继续:
尽pipe这些例子应该主要在Node的早期版本中工作。
Node v4不支持解构,这是它为你窒息的部分。 您可以查看node.green ,了解哪些节点版本支持哪些function。
这也失败了一个语法错误:
import|export
在任何版本的节点中都不受支持。 你将不得不传递。 或者你可以使用Node的模块系统。 为此,它应该看起来像这样:
var graphqlModule = require("graphql"); var graphql = graphqlModule.graphql; var GraphQLSchema = graphqlModule.GraphQLSchema; // ...
- 如何在GraphQLparsing器中设置(数据库或其他)上下文?
- 不能从apollo-client导入createBatchingNetworkInterface
- GraphQL参数错误:参数types必须是inputtypes,但得到:function GraphQLObjectType(config){
- 如何启用节点上的csrfexpression式为graphql和graphiql与例如lusca?
- 如何实现Rest API,它支持使用nodejs和mongodb进行部分响应和嵌套查询
- 使用Express JS检查API请求授权的更好方法
- 如何将对象列表连接到Relay的节点
- NodeJs GraphQLdynamic查询variables
- Apollo Stack支持像Relay这样的节点接口的全局对象标识吗?