标签: keystonejs

Nodejs Multer diskStorage 不工作 - 为什么目标定位临时文件夹而不上传

我正在使用 Multer 上传个人资料图片,但不幸的是无法正常工作。这是我的代码:

var express =   require("express");
var multer  =   require('multer');
var app         =   express();
var storage =   multer.diskStorage({
  destination: function (req, file, callback) {
    callback(null, './public/uploads');
  },
  filename: function (req, file, callback) {
    callback(null, file.fieldname + '-' + Date.now());
  }
});
var upload = multer({ storage : storage}).single('avatar');

exports.uploadAvatar = function(req, res) {
    console.log(req.files);
    upload(req,res,function(err) {
        if(err) {
            return res.end("Error uploading file.");
        }
        res.end("File is uploaded");
    });
};
Run Code Online (Sandbox Code Playgroud)

和路线:

app.post('/api/uploadAvatar', requiredAuthentication, routes.api.instructor.uploadAvatar);
Run Code Online (Sandbox Code Playgroud)

这是我的表格:

<form method="post" id="editProfile" enctype="multipart/form-data" action="/api/uploadAvatar">
    <div …
Run Code Online (Sandbox Code Playgroud)

node.js multer keystonejs

1
推荐指数
1
解决办法
6718
查看次数

为 Keystone 中的字段设置动态默认值(对于 url slug)

我对 GraphQL 和无头 CMS 的概念完全陌生,只从头开始构建了自己的 REST API。

我已经使用 Keystone v6 构建了一个基本 API,可以说我有一个产品架构,如下所示:

export const Item = list({
  fields: {
    name: text({ validation: { isRequired: true } }),
    description: text(),
    photos: relationship({
      ref: 'ProductImage.listing',
      many: true,
    }),
    category: relationship({
      ref: 'Category.listings',
      many: false,
    }),
    dateCreated: timestamp({
      defaultValue: { kind: 'now' },
    }),
    brand: text(),
    model: text(),
    size: text(),
    slug: text(),
  },
});
Run Code Online (Sandbox Code Playgroud)

酷,有效......现在说我希望在使用诸如““this-item-name”+“-”+“id””之类的内容创建产品时自动填充 slug,我无法弄清楚/如何这样做或 b/ 甚至从惯例的角度来看。

我的假设是我会使用defaultValue文本字段的属性?或者这是否与突变有关(我还没有很好地理解这个概念)……如果是这样,我无法弄清楚在样板 Keystone 应用程序中我什至会编写突变。

非常感谢任何指点。

typescript graphql keystonejs

1
推荐指数
1
解决办法
1212
查看次数

Keystone JS:使用临时字符串自动重命名 S3 图像上传

我对 Keystone 还很陌生,因为我最近继承了一个使用它的项目的代码库。我们被锁定到版本 0.2.42,所以我刚刚更新到最新版本 0.3.12,现在我遇到了一个奇怪的问题。我们所有带有图像的模型都使用 S3 进行上传(Types.S3File),并且它过去只是将具有原始文件名的图像放置在指定 S3 存储桶的根目录中。然而,现在这些文件正在被重命名,我猜这是一个临时字符串名称。例如,如果我上传一个名为“MyImage.jpg”的文件,它将上传为“7830c3a6bc7b6790e63de9a3c3716b06.jpg”之类的文件。我是否需要编辑新配置以保留原来的文件名?感谢您的帮助。

赛斯

javascript amazon-s3 node.js keystonejs

0
推荐指数
1
解决办法
970
查看次数

如何更改keystone端口#?

我已经在默认端口3000上运行了另一个节点CMS应用程序.我知道在创建节点应用程序时,我们在index或app.js中指定端口#.在package.json中,开头是:node keystone.js,但是当我这样做时,它说端口已经在使用,这是我的其他CMS应用程序.我已经检查了gulp文件.这是开始CMS的关键

主目录中有文件:.env文件gulpfile keystone.js这是主文件procfile

node.js gulp gulp-watch keystonejs

0
推荐指数
1
解决办法
3816
查看次数

Node JS:意外的令牌ILLEGAL

我试图启动服务器,但我收到此错误

/home/ceddy/syd/sydjs/node_modules/keystone/admin/server/middleware/logError.js:7
    var msg = `[${endpoint}]`;
              ^
SyntaxError: Unexpected token ILLEGAL
at exports.runInThisContext (vm.js:73:16)
at Module._compile (module.js:443:25)
at Module._extensions..js (module.js:478:10)
at Object.require.extensions.(anonymous function) [as .js] (/home/ceddy/syd/sydjs/node_modules/babel-register/lib/node.js:138:7)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.createDynamicRouter (/home/ceddy/syd/sydjs/node_modules/keystone/admin/server/app/createDynamicRouter.js:65:21)
at createApp (/home/ceddy/syd/sydjs/node_modules/keystone/server/createApp.js:63:72)
at [object Object].initExpressApp (/home/ceddy/syd/sydjs/node_modules/keystone/lib/core/initExpressApp.js:5:46)
at [object Object].start (/home/ceddy/syd/sydjs/node_modules/keystone/lib/core/start.js:47:7)
at Object.<anonymous> (/home/ceddy/syd/sydjs/keystone.js:94:10)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Function.Module.runMain (module.js:501:10)
at startup (node.js:129:16)
at node.js:814:3
Run Code Online (Sandbox Code Playgroud)

当我看到第7行似乎导致错误的文件时,我没有看到任何错误,比如控制台说...我在这里遗漏了什么,请问是什么原因?提前致谢

module.exports = function (req, …
Run Code Online (Sandbox Code Playgroud)

javascript node.js keystonejs

0
推荐指数
1
解决办法
1835
查看次数

npm install始终坚持那个提取:time-grunt

我正在学习Keystone并尝试在真正的数字海洋液滴上练习它.一切顺利,直到我坚持下去npm install.

npm WARN deprecated jade@1.11.0: Jade has been renamed to pug, please install the latest version of pug instead of jade
npm WARN deprecated transformers@2.1.0: Deprecated, use jstransformer
npm WARN deprecated cross-spawn-async@2.2.4: cross-spawn no longer requires a build toolchain, use it instead!
npm WARN deprecated minimatch@0.2.14: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated minimatch@0.3.0: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm …
Run Code Online (Sandbox Code Playgroud)

node.js ubuntu-16.04 keystonejs

0
推荐指数
1
解决办法
2304
查看次数

如何正确设置 Keystone.js 应用程序以在 docker 中使用 mongo 运行?

我已经构建了在本地运行良好的应用程序。当我尝试在 docker ( docker-compose up )中运行它时,它似乎启动了,但随后抛出了一条错误消息:

\n\n
Creating mongodb ... done\nCreating webcms  ... done\nAttaching to mongodb, webcms\n\n...\n\nMongoose connection "error" event fired with:\n    MongoError: failed to connect to server [localhost:27017] on first connect\n\n...\n\nwebcms exited with code 1\n
Run Code Online (Sandbox Code Playgroud)\n\n

我读到,使用Keystone.js,您需要在.env文件中配置 Mongo 位置,我有:

\n\n
MONGO_URI=mongodb://localhost:27017\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是我的 Docker 文件:

\n\n
# Use node 9.4.0\nFROM node:9.4.0\n\n# Copy source code\nCOPY . /app\n\n# Change working directory\nWORKDIR /app\n\n# Install dependencies\nRUN npm install\n\n# Expose API port to the outside\nEXPOSE 3000\n\n# Launch application\nCMD ["node","keystone"]\n
Run Code Online (Sandbox Code Playgroud)\n\n …

mongodb docker docker-compose keystonejs

-1
推荐指数
1
解决办法
1714
查看次数