我正在使用 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) 我对 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 应用程序中我什至会编写突变。
非常感谢任何指点。
我对 Keystone 还很陌生,因为我最近继承了一个使用它的项目的代码库。我们被锁定到版本 0.2.42,所以我刚刚更新到最新版本 0.3.12,现在我遇到了一个奇怪的问题。我们所有带有图像的模型都使用 S3 进行上传(Types.S3File),并且它过去只是将具有原始文件名的图像放置在指定 S3 存储桶的根目录中。然而,现在这些文件正在被重命名,我猜这是一个临时字符串名称。例如,如果我上传一个名为“MyImage.jpg”的文件,它将上传为“7830c3a6bc7b6790e63de9a3c3716b06.jpg”之类的文件。我是否需要编辑新配置以保留原来的文件名?感谢您的帮助。
赛斯
我已经在默认端口3000上运行了另一个节点CMS应用程序.我知道在创建节点应用程序时,我们在index或app.js中指定端口#.在package.json中,开头是:node keystone.js,但是当我这样做时,它说端口已经在使用,这是我的其他CMS应用程序.我已经检查了gulp文件.这是开始CMS的关键
主目录中有文件:.env文件gulpfile keystone.js这是主文件procfile
我试图启动服务器,但我收到此错误
/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) 我正在学习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) 我已经构建了在本地运行良好的应用程序。当我尝试在 docker ( docker-compose up )中运行它时,它似乎启动了,但随后抛出了一条错误消息:
\n\nCreating 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\nRun Code Online (Sandbox Code Playgroud)\n\n我读到,使用Keystone.js,您需要在.env文件中配置 Mongo 位置,我有:
\n\nMONGO_URI=mongodb://localhost:27017\nRun 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"]\nRun Code Online (Sandbox Code Playgroud)\n\n … keystonejs ×7
node.js ×5
javascript ×2
amazon-s3 ×1
docker ×1
graphql ×1
gulp ×1
gulp-watch ×1
mongodb ×1
multer ×1
typescript ×1
ubuntu-16.04 ×1