【发布时间】:2012-02-11 23:48:01
【问题描述】:
我正在对 Node.js 进行一些研发,目前我很喜欢它,我只是好奇如何重用代码以便在客户端和服务器之间共享一些代码。
我使用 npm 安装的 Backbone.js 就是一个很好的例子。
目前我有一个如下所示的目录:
app.js
public/
routes/
views/
node_modules/
tests/
显然我使用的是 express.js,而我所有的客户端代码都位于 css、images、js 文件所在的 public 文件夹下。
那么我如何在主干中建立一个模型,我可以在服务器和后端使用它?
此外,我曾经使用 JavaScript AMD 和 Require.js 来构建和模块化我的应用程序,我已经习惯了它并且我倾向于喜欢它我看到 require.js 可以通过 npm 获得,但现在我安装了它'我不确定如何在客户端使用它,因为我曾经有这样的东西:<script data-main="js/main" src="js/libs/Require/require.js"> 但由于 require.js 是通过 npm 安装的,它不在公共文件夹下,所以我看不到任何可能加载方式。
谢谢
【问题讨论】:
-
public/models,public/collections,public/views,把骨干的东西公之于众。至于重用 require,可以考虑改用 modul8 或 browserify -
@Raynos 如果我在模型中有
var Backbone = require('backbone');,那么当我尝试加载这个 JS 文件时,它会抛出require方法未定义的异常,否则它会搞砸加上我在客户端使用的 require.js,所以我如何拥有一个 hybrid 模型,以便我可以在客户端和服务器端使用它,因为我在客户端使用 require.js我的脚本以define([...开头,这就是为什么我想在两边都使用 requireJS。 -
不要两边都使用requireJS。在节点上使用node,在客户端使用browserify/modul8。
-
好的,我明白了,但说真的,为什么不在客户端甚至不需要 require.js?我的意思是它有多糟糕?
标签: node.js backbone.js npm requirejs