Nodejs 有人用 KeystoneJS 来开发 CMS 或者其他类型的 web app 吗?
Nodejs 有人用 KeystoneJS 来开发 CMS 或者其他类型的 web app 吗?
貌似是目前开发最活跃的基于 Node.js 的 CMS 框架. 我个人认为是目前最好的Node.js CMS framework 我自己用它来快速开发过一些小的 web app 不过看起来用来开发博客网站也可以,但是估计 template 没有 Ghost 多
我今天见到了开发者本人JedWatson,和他聊了聊。他的目标挺大,想做到Ghost/WordPress那样。 我觉得KeystoneJS很适合用来快速开发,就像mean那样。也适合新手来建站,不过还是有些learning curve的。 我准备有空来翻译一些KeystoneJS的文档,不知道有没有必要?还是现在大家都是直接看英文的了?
Nodejs 有人用 KeystoneJS 来开发 CMS 或者其他类型的 web app 吗?
摘要: KeystoneJS 是一个基于 Node.js 的内容管理系统(CMS)框架,非常适合快速开发各种 Web 应用。它不仅功能强大,而且具有良好的扩展性,可以用于开发 CMS、博客系统以及其他类型的 Web 应用。虽然 KeystoneJS 在模板方面可能不如 Ghost 那么丰富,但它依然具备很高的灵活性和可定制性。
正文:
KeystoneJS 是一个非常活跃且不断发展的 Node.js 框架,专门用于构建 CMS 和 Web 应用。我个人已经使用 KeystoneJS 开发了一些小型 Web 应用,并且发现它在构建博客系统方面也非常有效。尽管 KeystoneJS 的模板可能没有 Ghost 那么多,但它提供了丰富的自定义选项,允许开发者根据自己的需求进行调整。
KeystoneJS 的开发者 JedWatson 目标远大,希望将其打造成类似于 Ghost 或 WordPress 的平台。在我看来,KeystoneJS 非常适合快速开发项目,类似于 MEAN (MongoDB, Express, Angular, Node.js) 堆栈的应用。此外,它对新手来说也是友好的,尽管它仍然有一定的学习曲线。
示例代码
以下是一个简单的 KeystoneJS 项目结构示例,展示了如何设置一个基本的 CMS 系统:
// 文件: keystone.js
const keystone = require('keystone');
const Handlebars = require('handlebars');
const dotenv = require('dotenv');
dotenv.config();
const env = process.env.NODE_ENV || 'development';
keystone.init({
name: 'My KeystoneJS App',
brand: 'My KeystoneJS App',
// 加载配置文件
less: 'public',
static: 'public',
favicon: 'public/favicon.ico',
views: 'templates/views',
view engine: 'hbs',
// 设置中间件
auto update: true,
session: true,
auth: true,
user model: 'User',
});
// 加载模型
keystone.import('models');
// 定义路由
keystone.set('routes', require('./routes'));
// 启动应用
keystone.start();
在这个例子中,我们首先导入了必要的模块,并设置了 KeystoneJS 的初始化参数。keystone.import('models')
用于加载定义的数据模型,而 keystone.set('routes', require('./routes'))
用于定义应用的路由。最后,通过 keystone.start()
启动应用。
总的来说,KeystoneJS 是一个非常强大的工具,适合快速开发各种 Web 应用。如果你正在寻找一个灵活且易于扩展的 Node.js CMS 框架,KeystoneJS 绝对值得一试。
我之前是做Drupal项目的,看过keystonejs,感觉有些功能很赞,但略显单薄,在尝试用sails.js开发cms
Sails.js 感觉像Meteor,偏向realtime app, 而不是CMS
正在自己开发一个自用的CMS,参考了keystone使用的技术,只不过数据库准备用mysql,刚开始学,练练手
尽量避免从新发明车轮吧 不过如果是学习的话例外
KeystoneJS 是一个基于 Node.js 的开源框架,用于快速开发内容管理系统(CMS)和其他类型的 Web 应用。它非常灵活且功能丰富,可以满足多种开发需求。
示例代码
下面是一个简单的 KeystoneJS 应用示例,展示如何创建一个基本的模型(Model)和路由(Route):
-
安装 KeystoneJS
首先需要安装 KeystoneJS 及其依赖:
npm install keystone
-
创建
keystone.js
文件创建一个
keystone.js
文件来初始化 KeystoneJS 应用,并定义数据模型:const keystone = require('keystone'); const Types = keystone.Field.Types; // 初始化 Keystone const keystone = new keystone({ name: 'My Web App', brand: 'My Web App' }); // 定义数据模型 keystone.list('Post', { fields: { title: { type: String, label: 'Title' }, content: { type: Types.Html, wysiwyg: true, height: 300 } } }).register(); // 启动应用 keystone.start();
-
添加路由
在 KeystoneJS 中,你可以通过中间件和路由来自定义应用的行为。例如,在
routes/index.js
文件中定义路由:const keystone = require('keystone'); exports = module.exports = function (req, res) { const view = new keystone.View(req, res); const locals = res.locals; // 加载所有 Post view.query('posts', keystone.list('Post').model.find().sort('-createdAt')); // 渲染页面 view.render('home'); };
-
启动应用
确保所有文件都配置正确后,可以在命令行运行以下命令启动 KeystoneJS 应用:
node keystone.js
-
访问应用
默认情况下,应用会在
http://localhost:3000
上运行。你可以通过浏览器访问该地址查看应用的效果。
总结
KeystoneJS 是一个强大且易于使用的 CMS 框架,适用于快速开发各类 Web 应用。它提供了丰富的功能,如自定义数据模型、内置的管理界面等,使得开发过程更加高效和灵活。如果你有兴趣深入学习 KeystoneJS,可以参考官方文档或参与社区讨论。