3

我正在考虑用DocPad制作一个包含大量用户交互的网站,例如评论、用户配置文件等。我喜欢基于文件的数据存储,所以我考虑将用户发布的数据写入 src/documents/ 下的文件(例如 src/documents /comments/ some-generated-id .html.md 和 src/documents/users/ user-name .html.md)。

这将需要一些服务器端逻辑来处理和存储用户输入。你会如何解决这个问题?我应该把我的代码放在哪里?我想这应该去一个插件。有没有这样的现成插件?

4

2 回答 2

1

我想我想通了。

我在 /plugins/userInput/userInput.plugin.coffee 下制作了插件,如@balupton 所述:http: //bevry.me/docpad/plugin-write

在我的插件里面我有这个:

<!-- language: lang-coffee -->
module.exports = (BasePlugin) ->
  class userInput extends BasePlugin
    name: "userInput"
    serverExtend: (options) ->
      {server} = options
      docpad = @docpad
      server.delete '*', userInput.deleteContent
      server.get '*', (request, response, next) ->
        switch request.query.action
          when 'delete' then userInput.deleteContent request, response, next
          else next()
    @deleteContent: (request, response, next) ->
      response.send 'That was really cool shit, man. Now it\'s gone!'

这只是概念证明。它并没有真正删除或更改任何内容。无论如何,这回答了我的问题,从这里实现真正的数据操作应该很容易。当它更成熟一点时,我会分享这个插件。

顺便说一句,DocPad 很棒。我一直梦想着这样的事情。感谢所有背后的人。

于 2012-12-09T22:32:59.100 回答
0

1) 任何/所有动态内容都应“离岸”到某些服务提供商。喜欢广告服务的广告(好吧,几乎总是这样做)评论到 disqus 或与任何 rss 服务类似的 rss

2)用户配置文件并不容易。(除非您无法连接某些 3rd 方用户配置文件服务,例如 google+/facebook)

一种解决方案是构建处理所有用户生成内容的服务器,然后为您更新静态文件。

这可能很慢,而且很麻烦。

于 2013-02-09T10:47:57.120 回答