【问题标题】:Calling server-side code from client on Derby.js在 Derby.js 上从客户端调用服务器端代码
【发布时间】:2015-02-14 17:58:33
【问题描述】:

我是使用 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”出现问题。但这意味着这段代码正在浏览器中执行?

所以我的问题是:为什么要在 client 端调用函数?显然,如果它在 server 端执行,正如我所想的那样,需要这些模块不会有问题。

如何在服务器上执行这个功能?之前使用 express + socket.io 可以正常工作,但想更改框架并尝试 Derby.js。

我显然误解了 Derby.js 的工作原理;任何帮助,将不胜感激。谢谢!

【问题讨论】:

    标签: node.js browserify derbyjs


    【解决方案1】:

    我知道这已经是 4 个月后的事了,但我也是 DerbyJs 的新手,我想我可以尝试提供帮助。

    我个人使用标准 html 代码具有等效的工作原理。

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多