我的应用程序是Node.JS,使用.ejs呈现视图。
我正在尝试从node_modules获取一个依赖文件夹,而不是必须将该node_module模块(jquery,angular,moment,jquery-ui,kendo-ui-core等)放在我的'public'中用于获取应用程序资产或必须在我的.ejs(html)文件中引用脚本标记中的CDN的文件夹。我试过添加:
var moment = require('moment');
在我的server.js(或你称之为'app.js'或'index.js'文件)的应用程序的根目录,但这似乎没有抓住这个文件夹。我也尝试过放置
var moment = require('moment');
在javascript(.js)文件中,位于最顶层并收到错误消息:“require is not defined”。我假设NodeJ应该知道哪些模块在Node_modules文件夹中,所以我想可能在我的server.js文件中,node_modules没有设置为像我正在使用的公共文件夹那样使用。
app.use(express.static(__dirname + '/public'));
使用app.use功能。我查看过的大多数教程甚至文档只是给出了简单的指令:'只需添加var moduleName = require('module');'但他们并没有详细说明我在哪个文件中执行此操作,或者除了将变量声明为require函数之外还有其他任何操作可以设置它。我不使用模块加载器,所以这可能是我没有定义需求的原因。另外,我想也许安装全局(-g)或本地安装这些模块可能是一个原因。但是,完全迷失了。
总结:如何在我的一个javascript文件中使用node_modules,如何在不将node文件移出node_modules的情况下在我的.ejs文件中使用它?
答案 0 :(得分:0)
运行Node.js应用程序时需要遵循一定的流程。下面我将列举使用Node.js提供的npm时要采取的步骤:
npm init
。这将创建一个名为package.json的文件,其中应用程序的所有依赖项将与应用程序的其他数据一起列出npm install appname
(例如npm install jquery
)node_modules
时将创建的npm install
文件夹中的所有依赖项都将可用,并且还会列在package.json
index.js
语句在应用程序的文件夹(存储库)中创建require
文件node index.js
,这将启动节点,任何require
语句都可以正常工作,只要您有npm install
我希望这会有所帮助。请记住,节点在浏览器外部的环境中运行javascript,在本地机器中就是这样。
最后一件事,你引用的app.use(express.static(__dirname + '/public'));
实际上是一个中间件,当你的应用程序像服务器那样运用时,它与require
无关。