用户在DocPad中提供了内容

时间:2012-12-09 01:32:04

标签: node.js docpad

我正在考虑DocPad建立一个包含大量用户互动的网站,例如评论,用户档案等。我喜欢基于文件的数据存储,所以我考虑将用户发布的数据写在src / documents下的文件中/(例如,src / documents / comments / some-generated-id .html.md和src / documents / users / user-name .html.md)。< / p>

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

2 个答案:

答案 0 :(得分: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!'

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

BTW DocPad真棒。我很长一段时间都在梦想这样的事情。感谢背后的所有人。

答案 1 :(得分:0)

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

2)用户档案并不容易。 (除非您无法与某些第三方用户个人资料服务联系,例如google + / facebook)

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

这可能很慢,也很麻烦。