Tag: keystonejs

我怎样才能将参数从Express路由传递到Node中间件

我无法在文档中find答案,我希望有办法做我所需要的。 我有一些快递路线: app.post( '/submit-agency-event' , eventService.submitEvent ); app.post( '/submit-question' , formService.submitQuestion ); app.post( '/submit-information-request' , formService.submitInformationRequest ); app.post( '/social-worker-register-family' , familyService.registerFamily ); 每个路由使用中间件文件中的函数来处理请求。 我想限制一个路由只有一些用户types(这是存储在req.user.userType )。 我想设置类似于以下的路线: app.post( '/social-worker-register-child' , middleware.requireUsersOfType( ['admin, social worker'] ), childService.registerChild ); 那么在调用requireUsersOfType() ,使用函数requireUsersOfType()来处理处理和任何所需的redirect。 exports.requireUsersOfType = ( req, res, next, userTypesArray ) => { // processing }; 我似乎无法弄清楚的是如何将parameter passing给requireUsersOfType()函数。 有谁知道这可以做到吗?

如何使用一个局部variables的值代替HandleBarjs中的其他variables

我正在面对和处理酒吧问题。 我已经创build了两个局部variables与语言的名称,并对应的两个Json文件的path。 app.locals.en=require('../locales/en.json'); app.locals.de=require('../locales/de.json'); 我正在检测URL中的de或en并存储到另一个局部variables调用“Lang” app.locals.lang = "Some code that detects DE or EN from URL and Stores into lang" 现在在Handlebrsjs我正在使用类似的东西 <h1>{{lang.Home.TITLE}}</h1> 上面的Lang应该给De或者它给的EN,但是它不会去Json文件,但是如果我们简单地使用 <h1>{{en.Home.TITLE}}</h1> 它工作正常。 我想用lang.home.title代替en.home.title,因为lang也有相同的值。 但它不适用于lang.home.title 必须有一些办法来解决这个问题。 请告诉我。 谢谢。

keystone.Storage适配器谷歌云存储

是否有一个谷歌云存储适配器keystone.Storage库? 我想承载一切我可以与一个服务提供商。 我将使用谷歌云平台来托pipe我的Keystone.js应用程序和MongoDB数据库。 该库有本地文件,S3和Azure适配器,但我不知道如何使用它与谷歌云存储。 请参阅https://github.com/keystonejs/keystone/tree/master/lib/storage 如果可以像keystone-storage-adapter-s3一样使用,我会很棒: configuration: var storage = new keystone.Storage({ adapter: require('keystone-storage-adapter-gcloud'), s3: { key: 'gcloud-key', secret: 'secret', bucket: 'mybucket', path: '/profilepics', headers: {}, }, schema: { bucket: true, etag: true, path: true, url: true, }, }); 然后用它作为File域的存储提供者: File.add({ name: { type: String }, file: { type: Types.File, storage: storage }, });

keystone.js API和cloudinary图片上传

我有一个主要用作移动应用程序的API资源的keystone安装作为前端。 当我用手机拍照时,我想把照片保存到cloudinary服务。 照片以base64string的forms发送到服务器。 我可以使用一些keystone api在cloudinary服务上传图像,或者我必须使用cloudinary模块方法来做到这一点,并手动插入数据到数据库?

安装keystone.js

我在Linux上安装keystone.js时遇到问题。 不确定问题是什么,因为我对Linux很陌生。 当我尝试使用npm install -g generator-keystone安装keystone时,以下是输出 我从这个答案解决了一些问题: npm抛出错误没有sudo,但仍然得到这些错误: npm ERR! Error: EACCES, symlink '../lib/node_modules/yo/cli.js' npm ERR! { [Error: EACCES, symlink '../lib/node_modules/yo/cli.js'] npm ERR! errno: 3, npm ERR! code: 'EACCES', npm ERR! path: '../lib/node_modules/yo/cli.js' } npm ERR! npm ERR! Please try running this command again as root/Administrator. npm ERR! System Linux 3.13.0-24-generic npm ERR! command "/usr/bin/nodejs" […]

添加创build一个mixin并使用它keystonejs

我正在尝试为keystonejs创build一个jQuery mixin,这里是我在index.jade中提出的 extends ../layouts/default block bodycontent include ../mixins/focus.jade 和mixin玉文件 mixin focus(focus) section#focus.focus div.container div.service-icon= focus.image 这是javascript视图文件 var keystone = require('keystone'), Focus = keystone.list('Focus'); exports = module.exports = function(req, res) { var view = new keystone.View(req, res), locals = res.locals; // Set locals locals.section = 'focus'; locals.data = { }; view.on('init', function(next) { Focus.model.find() .populate('author') .sort('label') […]

使用KeystoneJS CMS为AngularJS应用程序生成html文件

我是AngularJS和KeystoneJS的新手,我非常感谢你的帮助。 感谢你们。 我已经为我的Angular应用程序使用Express的express.static做了一个服务机制。 在这一点上,我的应用程序可以成功地从不同的位置加载到以下代码的特定页面的常规HTML文件。 controller.js: .controller('Ctrl', function ($scope, $http) { $scope.html = "testing"; $http({ url: 'content/content1.html', method: 'GET', responseType: 'text' }).success(function(data) { $scope.html = data; }).error() $scope.message = 'Hello'; }); page.html中: <div ng-bind="html"></div> routing.js app.use(express.static(__dirname + '/content')); 接下来,我想从独立的KeystoneJS CMS将内容加载到我自己的Angular应用程序中的特定页面。 基本上,我只是希望能够使用KeystoneJS编辑一些内容,然后在我的独立的Angular应用程序中自动发布内容。 1)我怎样才能从一个HTML页面的forms获得从Keystone导出的页面?

KeyStone JS账户控制器

我在NodeJS编码时了解MVC结构。 我最近开始使用Keystone JS,我非常喜欢它。 但是,他们设置他们的控制器的方式,似乎控制器只能提供一个视图的目的。 在之前的项目中,我有一个Account.js模型和一个Account.js控制器。 我想看看它会如何复制到keystone。 所以:我如何让用户在一个Keystone项目中注册/login/注销(不是在pipe理界面中,而是像一个常规站点的成员)? 我怎么做一个帐户控制器(显然没有视图渲染)?

在带有把手的KeystoneJS中添加额外的内容块

我使用KeystoneJS的句柄,并试图扩展默认模板中的主要导入。 目前,它只包含通过视图导入的{{{body}}}标记以及我正在使用的部分。 有什么方法可以添加其他一些导入(即介绍内容,页面标题,其他脚本)。 在演示网站上的玉石版本,它只是将其作为内容块导入。 这是车把的限制吗?

KeystoneJSfile upload不起作用在我的应用程序

我们正在和一个使用Keystonejs 0.3.16的客户端合作,提供将file upload到服务器文件系统的可能性(不是来自keystone admin ui)。 一方面,这似乎是微不足道的,我预计这将在不到一个小时的时间内工作。 经过这个工作,直到午夜之后,由于这样一个事实,我会睡得更好,我不得不暂时辞职,事实上,我的梦想因此而不得而知。 多么怪胎,你必须想想,得到一个生命! 但是,我相信很多人会知道这种感觉。 我现在转向你,社区和keystonejs作者,帮助我理解我在这里失去的东西。 我正在使用最新版本的密钥库,我尝试了多个库来处理作为中间件组件的多部分格式file upload。 Multer,强大的jfum,jquery-file-upload-middleware,connect-busboy,connect-multiparty …我都做了。 一个甚至没有安装,由于一些编译错误,由于不兼容的库,有些给了我500错误告诉我,req.status没有定义,所有其他人告诉我,上传顺利,但req.body和req.file留空了,没有下载。 我甚至添加了一些日志logging来彻底清除lib“makeMiddleware”,以查看文件是否在那里被parsing,但是busboy.on('file',…)事件永远不会被触发,表明没有文件存在于主体中。 我还没有在一个基本的Nodejs Express服务器应用程序中尝试过,只有在keystone js应用程序,所以也许keystone预处理post请求以某种方式解释这种现象,例如。 在文件内容到达我的中间件之前剥离文件内容? 这是我的基本forms: <form method="post" role="form" enctype="multipart/form-data" action="/bo/lib/upload"> <input type="file" id="imageFileId" name=" imageFileName"> <input type="submit" value="Upload Image"> <form> 在这里我使用Multer的例子是: var upload = multer({ dest: './uploads/'}); exports = module.exports = function(app) { app.post('/', upload.single('myimage'), function(req, res){ console.log(req.body) // […]