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的文档,不知道有没有必要?还是现在大家都是直接看英文的了?


6 回复

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):

  1. 安装 KeystoneJS

    首先需要安装 KeystoneJS 及其依赖:

    npm install keystone
    
  2. 创建 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();
    
  3. 添加路由

    在 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');
    };
    
  4. 启动应用

    确保所有文件都配置正确后,可以在命令行运行以下命令启动 KeystoneJS 应用:

    node keystone.js
    
  5. 访问应用

    默认情况下,应用会在 http://localhost:3000 上运行。你可以通过浏览器访问该地址查看应用的效果。

总结

KeystoneJS 是一个强大且易于使用的 CMS 框架,适用于快速开发各类 Web 应用。它提供了丰富的功能,如自定义数据模型、内置的管理界面等,使得开发过程更加高效和灵活。如果你有兴趣深入学习 KeystoneJS,可以参考官方文档或参与社区讨论。

回到顶部