0

我是使用 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 应该如何工作;任何帮助,将不胜感激。谢谢!

4

1 回答 1

0

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

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

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

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

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

于 2015-07-16T01:25:02.300 回答