Giter Club home page Giter Club logo

egg-graphql-boilerplate's Issues

进行单元测试出现如下问题:Schema must be an instance of GraphQLSchema

我用的版本如下:
"dependencies": {
"dataloader": "^1.4.0",
"egg": "^2.2.1",
"egg-graphql": "^2.1.0",
"egg-scripts": "^2.5.0",
"egg-sequelize": "^3.1.2",
"graphql": "^0.13.2",
"lodash": "^4.17.5",
"mysql2": "^1.5.3",
"npm": "^5.8.0"
},
,在执行这里的时候:
const data = yield ctx.service.graphql.query(query);
assert.equal(data.data.user.id, user.id);
assert.equal(data.data.user.name, user.name);

可以做一个更完善点的样例吗

网上绝大部分 graphql 文档都是针对前端入门的。该模板看起来也没法继续深入。

模板提供的例子里面 dataloader 只针对 user 做了优化。

复杂的场景下,如果 item 有100条,那么就会执行至少100个 item 的查询。这看起来很不合理。如果 gql 更复杂点,那么就更无法接受了。

希望有个经典 用户 <=> 角色 <=> 权限 多对多关系的最佳实践。

mutation 的时候 想输入用定义变量怎么写?

mutation CreateUser($user: CreateUserInput!) { createUser(input: $user) { changedUser { id username } } } 类似这种 我在mutation 文件夹下定义 了
createCaughtError($caughtError:CreateCaughtErrorInput!){
createCaughtError(input:$caughtError):User
}
第一个$就提示语法错误了。

枚举如何在客户端写查询

enum Priority {
HIGH,
NORMAL,
LOW
}

type Item {
id: ID!
content: String!
expire: String
priority: Priority!
done: Boolean!
tags: [String!]
updated_at: Date
created_at: Date
}

跑例子的时候报错了

TypeError: DataLoader must be constructed with a function which accepts Array and returns Promise<Array>, but the function did not return a Promise of an Array of the same length as the Array of keys.

restful 接口

为什么还提供了restful 的接口?
在route 中
module.exports = (app) => {
app.get('/', 'home.index');
app.post('/api/auth/login', 'auth.login');
app.post('/api/auth/register', 'auth.register');
app.resources('users', '/api/users', app.controller.user);
};

win7环境中调试 npm run dev 启动不起来

C:\GraphQL\egg-graphql-boilerplate>npm run dev

> [email protected] dev C:\GraphQL\egg-graphql-boilerplate
> egg-bin dev

2018-12-13 16:42:05,585 INFO 8300 [master] node version v10.14.0
2018-12-13 16:42:05,590 INFO 8300 [master] egg version 1.17.0
sequelize deprecated String based operators are now deprecated. Please use Symbol based operators for better security, read more at http://docs.sequelizejs.com/manual/tutorial/querying.html#operators node_modules\[email protected]@sequelize\lib\sequelize.js:242:13
2018-12-13 16:42:16,817 ERROR 4432 nodejs.SequelizeConnectionError: Unknown database 'graphql'
    at Utils.Promise.tap.then.catch.err (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@sequelize\lib\dialects\mysql\connection-manager.js:149:19)
    at tryCatcher (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@bluebird\js\release\util.js:16:23)
    at Promise._settlePromiseFromHandler (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@bluebird\js\release\promise.js:512:31)
    at Promise._settlePromise (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@bluebird\js\release\promise.js:569:18)
    at Promise._settlePromise0 (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@bluebird\js\release\promise.js:614:10)
    at Promise._settlePromises (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@bluebird\js\release\promise.js:690:18)
    at _drainQueueStep (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@bluebird\js\release\async.js:138:12)
    at _drainQueue (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@bluebird\js\release\async.js:131:9)
    at Async._drainQueues (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@bluebird\js\release\async.js:147:5)
    at Immediate.Async.drainQueues [as _onImmediate] (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@bluebird\js\release\async.js:17:14)
From previous event:
    at Promise.longStackTracesCaptureStackTrace [as _captureStackTrace] (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@bluebird\js\release\debuggability.js:411:19)
    at Function.Promise.attempt.Promise.try (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@bluebird\js\release\method.js:29:9)
    at Promise.resolve.retryParameters (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@sequelize\lib\sequelize.js:454:64)
    at C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@retry-as-promised\index.js:39:21
    at Promise._execute (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@bluebird\js\release\debuggability.js:313:9)
    at Promise._resolveFromExecutor (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@bluebird\js\release\promise.js:483:18)
    at new Promise (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@bluebird\js\release\promise.js:79:10)
    at retryAsPromised (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@retry-as-promised\index.js:29:10)
    at Sequelize.query (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@sequelize\lib\sequelize.js:454:28)
    at Sequelize.authenticate (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@sequelize\lib\sequelize.js:783:17)
    at authenticate (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@egg-sequelize\lib\loader.js:59:21)
    at authenticate.next (<anonymous>)
    at onFulfilled (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@co\index.js:65:19)
    at C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@co\index.js:54:5
    at new Promise (<anonymous>)
    at co (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@co\index.js:50:10)
    at toPromise (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@co\index.js:118:63)
    at next (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@co\index.js:99:29)
    at onFulfilled (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@co\index.js:69:7)
    at C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@co\index.js:54:5
    at new Promise (<anonymous>)
    at co (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@co\index.js:50:10)
    at toPromise (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@co\index.js:118:63)
    at next (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@co\index.js:99:29)
    at onFulfilled (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@co\index.js:69:7)
    at C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@co\index.js:54:5
    at new Promise (<anonymous>)
    at co (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@co\index.js:50:10)
name: "SequelizeConnectionError"
parent: {"code":"ER_BAD_DB_ERROR","errno":1049,"sqlState":"#42000"}
original: {"code":"ER_BAD_DB_ERROR","errno":1049,"sqlState":"#42000"}
pid: 4432
hostname: graphql

2018-12-13 16:42:16,830 ERROR 4432 nodejs.SequelizeConnectionError: Unknown database 'graphql'
    at Utils.Promise.tap.then.catch.err (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@sequelize\lib\dialects\mysql\connection-manager.js:149:19)
    at tryCatcher (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@bluebird\js\release\util.js:16:23)
    at Promise._settlePromiseFromHandler (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@bluebird\js\release\promise.js:512:31)
    at Promise._settlePromise (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@bluebird\js\release\promise.js:569:18)
    at Promise._settlePromise0 (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@bluebird\js\release\promise.js:614:10)
    at Promise._settlePromises (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@bluebird\js\release\promise.js:690:18)
    at _drainQueueStep (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@bluebird\js\release\async.js:138:12)
    at _drainQueue (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@bluebird\js\release\async.js:131:9)
    at Async._drainQueues (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@bluebird\js\release\async.js:147:5)
    at Immediate.Async.drainQueues [as _onImmediate] (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@bluebird\js\release\async.js:17:14)
From previous event:
    at Promise.longStackTracesCaptureStackTrace [as _captureStackTrace] (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@bluebird\js\release\debuggability.js:411:19)
    at Function.Promise.attempt.Promise.try (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@bluebird\js\release\method.js:29:9)
    at Promise.resolve.retryParameters (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@sequelize\lib\sequelize.js:454:64)
    at C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@retry-as-promised\index.js:39:21
    at Promise._execute (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@bluebird\js\release\debuggability.js:313:9)
    at Promise._resolveFromExecutor (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@bluebird\js\release\promise.js:483:18)
    at new Promise (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@bluebird\js\release\promise.js:79:10)
    at retryAsPromised (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@retry-as-promised\index.js:29:10)
    at Sequelize.query (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@sequelize\lib\sequelize.js:454:28)
    at Sequelize.authenticate (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@sequelize\lib\sequelize.js:783:17)
    at authenticate (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@egg-sequelize\lib\loader.js:59:21)
    at authenticate.next (<anonymous>)
    at onFulfilled (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@co\index.js:65:19)
    at C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@co\index.js:54:5
    at new Promise (<anonymous>)
    at co (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@co\index.js:50:10)
    at toPromise (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@co\index.js:118:63)
    at next (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@co\index.js:99:29)
    at onFulfilled (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@co\index.js:69:7)
    at C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@co\index.js:54:5
    at new Promise (<anonymous>)
    at co (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@co\index.js:50:10)
    at toPromise (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@co\index.js:118:63)
    at next (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@co\index.js:99:29)
    at onFulfilled (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@co\index.js:69:7)
    at C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@co\index.js:54:5
    at new Promise (<anonymous>)
    at co (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@co\index.js:50:10)
name: "SequelizeConnectionError"
parent: {"code":"ER_BAD_DB_ERROR","errno":1049,"sqlState":"#42000"}
original: {"code":"ER_BAD_DB_ERROR","errno":1049,"sqlState":"#42000"}
pid: 4432
hostname: graphql

2018-12-13 16:42:16,831 ERROR 4432 [agent_worker] start error, exiting with code:1
2018-12-13 16:42:16,839 ERROR 8300 nodejs.AgentWorkerDiedError: [master] agent_worker#1:4432 died (code: 1, signal: null)
    at Master.onAgentExit (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@egg-cluster\lib\master.js:328:17)
    at Master.emit (events.js:182:13)
    at Messenger.sendToMaster (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@egg-cluster\lib\utils\messenger.js:137:17)
    at Messenger.send (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@egg-cluster\lib\utils\messenger.js:102:12)
    at ChildProcess.agentWorker.once (C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@egg-cluster\lib\master.js:219:22)
    at Object.onceWrapper (events.js:273:13)
    at ChildProcess.emit (events.js:182:13)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:240:12)
name: "AgentWorkerDiedError"
pid: 8300
hostname: graphql

2018-12-13 16:42:16,842 ERROR 8300 [master] agent_worker#1:4432 start fail, exiting with code:1
2018-12-13 16:42:16,842 ERROR 8300 [master] exit with code:1
⚠️  Error: C:\GraphQL\egg-graphql-boilerplate\node_modules\[email protected]@egg-bin\lib\start-cluster {"baseDir":"C:\\GraphQL\\egg-graphql-boil
erplate","workers":1,"framework":"C:\\GraphQL\\egg-graphql-boilerplate\\node_modules\\egg"} exit with code 1
⚠️  Command Error, enable `DEBUG=common-bin` for detail
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] dev: `egg-bin dev`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] dev script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\graphql\AppData\Roaming\npm-cache\_logs\2018-12-13T08_42_16_923Z-debug.log

C:\GraphQL\egg-graphql-boilerplate>
-----------------------------------------------------------------------------------------------------------
以下为log:
0 info it worked if it ends with ok
1 verbose cli [ 'C:\\Program Files\\nodejs\\node.exe',
1 verbose cli   'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli   'run',
1 verbose cli   'dev' ]
2 info using [email protected]
3 info using [email protected]
4 verbose run-script [ 'predev', 'dev', 'postdev' ]
5 info lifecycle [email protected]~predev: [email protected]
6 info lifecycle [email protected]~dev: [email protected]
7 verbose lifecycle [email protected]~dev: unsafe-perm in lifecycle true
8 verbose lifecycle [email protected]~dev: PATH: C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin;C:\GraphQL\egg-graphql-boilerplate\node_modules\.bin;C:\Python27\;C:\Python27\Scripts;C:\ProgramData\Boxstarter;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Microsoft SQL Server\110\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\;C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\;C:\Program Files (x86)\Microsoft VS Code\bin;C:\Program Files\Lenovo\Fingerprint Manager Pro\;C:\Program Files\nodejs\;C:\ProgramData\chocolatey\bin;C:\mysql-8.0.13-winx64\bin;;C:\Program Files (x86)\Microsoft VS Code\bin;C:\Users\graphql\AppData\Roaming\npm
9 verbose lifecycle [email protected]~dev: CWD: C:\GraphQL\egg-graphql-boilerplate
10 silly lifecycle [email protected]~dev: Args: [ '/d /s /c', 'egg-bin dev' ]
11 silly lifecycle [email protected]~dev: Returned: code: 1  signal: null
12 info lifecycle [email protected]~dev: Failed to exec dev script
13 verbose stack Error: [email protected] dev: `egg-bin dev`
13 verbose stack Exit status 1
13 verbose stack     at EventEmitter.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\index.js:301:16)
13 verbose stack     at EventEmitter.emit (events.js:182:13)
13 verbose stack     at ChildProcess.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\lib\spawn.js:55:14)
13 verbose stack     at ChildProcess.emit (events.js:182:13)
13 verbose stack     at maybeClose (internal/child_process.js:962:16)
13 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:251:5)
14 verbose pkgid [email protected]
15 verbose cwd C:\GraphQL\egg-graphql-boilerplate
16 verbose Windows_NT 6.1.7601
17 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "dev"
18 verbose node v10.14.0
19 verbose npm  v6.4.1
20 error code ELIFECYCLE
21 error errno 1
22 error [email protected] dev: `egg-bin dev`
22 error Exit status 1
23 error Failed at the [email protected] dev script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 1, true ]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.