我是Node的新手,但到目前为止我都很享受。我试图将我的node_modules
(库)目录移到公共“webroot”之外,需要建议和指导。我可以把npm node_modules目录放在我的'webroot'之外
我设置我的简单expressJS基于节点项目如下:
/my_project
/config
/public
/node_modules
server.js
我想知道是否有什么办法,我可以有/node_modules
DIR我的根目录之外,并没有打破我的应用程序。我只是习惯于将公开暴露的webroot保留在最低限度,并且对那些库中的内容感到不适应。打电话给我老式的,但这就是我习惯于在PHP和C#世界做东西。
如果我设置的项目如下:
/my_project
/config
/node_modules
/public
server.js
那么这一切都摇晃和节点的require()
魔符。
我已经试过如下:
var express=require('../express');
不工作,要么给我“无法找到模块”类型的错误。
- 就是我问的,甚至可能,如果是的话,那么如何?
- 有没有任何主要的风险,我有我的库在一个webroot或者我错过了一些基本的方式与节点的工作方式。
-
你们做什么,生产应用程序的最佳做法是什么?我可以举一些你的生产实践和原因的例子。
'var express = require('../ node_modules/express');'似乎没有用。它确实看起来有点笨重。我仍然非常感兴趣你最擅长的是什么。 – 2013-03-20 11:07:15
要求('express')应该仍然有效。见[这个方便的帖子](http://www.bennadel.com/blog/2169-Where-Does-Node-js-And-Require-Look-For-Modules-.htm)。尤其是这一部分:“如果给定模块不是核心模块,Node.js将开始搜索名为'node_modules'的目录,它将从当前目录开始(相对于Node中正在执行的Javascript文件),然后按照文件夹层次结构工作,检查每个级别的node_modules文件夹。“所以看来你的问题在别的地方。 – 2013-03-20 11:10:08
另一方面,在节点中通常会将客户端可以访问的文件放在/ public中。 server.js应该不是。 – 2013-03-20 11:11:04