使用示例这里,如果我随后向Post添加了一个图像字段:
// schema.ts
import { list } from '@keystone-6/core';
import { select, relationship, text, timestamp } from '@keystone-6/core/fields';
export const lists = {
Post: list({
fields: {
featureImage: image(),
}),
/* ... */
},
/* ... */
});然后如何调整seed/index.ts文件以从本地驱动器上传图像?
// seed/index.ts
await context.query.Post.createOne({
data: {
...postData,
featureImage: { /* ??? What goes here ??? */ }
},
query: 'id',
});否则,我如何以编程方式添加图像,以便keystonejs知道它们?
发布于 2022-06-20 15:56:04
从这里得到的https://github.com/keystonejs/keystone-discussions-archive/discussions/54
// prepareToUpload.ts
import mime from 'mime'
import fs from 'fs'
import path from 'path'
import { Upload } from 'graphql-upload'
export const prepareToUpload = (filePath: string) => {
const filename = path.basename(filePath)
const createReadStream = () => fs.createReadStream(filePath)
// @ts-ignore
const mimetype = mime.getType(filePath)
const encoding = 'utf-8'
const image = {
createReadStream,
filename,
mimetype,
encoding,
}
const upload = new Upload()
// @ts-ignore
upload.resolve(image)
return upload
} await context.query.Film.createOne({
data: {
name: filmData.name,
imagePoster: {
// imagePoster MUST by a object with `upload` field
upload: prepareToUpload(__dirname + '/folder_to_local_file/here.jpg'),
},
},
query: 'id',
})https://stackoverflow.com/questions/70645438
复制相似问题