在Derby.js上从客户端调用服务器端代码

时间:2015-02-14 17:58:34

标签: node.js browserify derbyjs

我是使用Derby.js的新手,并使用yeoman generator-derby包构建了一个项目。我以为一切都很顺利,但我无法弄清楚我在这里做错了什么。

细分:

  • 我有一个'app / dbWp.js'控制器,可以导出几个函数,并且需要模块'mysql','async'和'needle'
  • 在我的app / index.js中,我导入此文件并按如下方式使用:

        app.proto.submitWp = function() {
            dbWp.createUser(this.model);
        };
    
  • 我从view / index.jade中调用此函数,如下所示:

    button.btn.btn-primary(type="button", on-click="submitWp()")
    
  • 在浏览器中,我收到很多console.error消息抱怨没有定义'fs'模块。经过大量的谷歌搜索,我发现这是由于Browserify忽略了'fs'模块,随后导致模块'mysql'和'needle'出现问题。但这意味着此代码正在浏览器中执行?

所以我的问题是:为什么要尝试在客户端端调用该函数?显然,如果它在服务器端执行,正如我认为的那样,就不会有需要这些模块的问题。

如何在服务器上执行此功能?如果以前使用express + socket.io工作正常,但想改变框架并给Derby.js一个镜头。

我显然误解了Derby.js应该如何运作;任何帮助,将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

我知道这就像4个月后,但对DerbyJs来说也是新手,我想我可以尝试帮助。

我个人使用标准的html代码具有相同的功能。

<button on-click="editContact(#contact.id)">Edit Contact</button>

这确实在服务器上运行代码。您可以尝试用标准HTML编写代码,或者更好的是,看看您是否可以在服务器方法上执行console.log以查看它是否到达那里?

也许最好的方法是使用控制台日志调用服务器上的空函数,并检查浏览器控制台和服务器控制台。