2013-03-09 79 views
0

我对node.js非常陌生,并且我在其中提供了一些不同的教程。我的目标是使用节点与ejs或下划线。我第一次使用下划线的尝试不太好。node.js需要方法找不到javascript文件:找不到模块

我正在使用bower来管理我的项目的脚本依赖关系,并且我能够在路径public/javascripts/vendor下拉下amd版本的下划线。我相信,如果我使用npm安装下划线,模块将被找到并且错误消失。

我认为这条线

app.use(express.static(path.join(__dirname, 'public'))); 

主要使用该目录下的所有静态文件设定的app.config?那么如何,下划线不能找到..

这我怎么用它的方式。

var _ = require('underscore-amd'); 
app.register('.html', { 
    compile: function(str, options){ 
     var compiled = require('underscore-amd').template(str); 
     return function(locals) { 
      return compiled(locals); 
     }; 
    } 
}); 

回答

0

你提到故宫,所以这是在节点使用下划线的正确方法:

{ 
    "name": "example", 
    "version": "0.0.1", 
    "dependencies": { 
    "underscore": "*", 
    } 
} 

鲍尔是客户端,你不能简单的使用在一个凉亭LIB节点。

这是提供静态文件到客户端:

app.use(express.static(path.join(__dirname, 'public'))); 

不是在服务器端使用的节点。

+0

所以如果我想使用下划线,我会有重复的依赖关系。一个用于服务器,另一个用于客户端? – Warz 2013-03-09 05:26:30

+1

是的。虽然请注意,如果您确实想要在客户端和服务器上管理和使用相同的代码,您可能需要尝试browserify:https://github.com/substack/node-browserify。这允许你捆绑npm模块用于客户端(基本上与你尝试的相反)。 – 7zark7 2013-03-09 05:29:13