【发布时间】:2015-04-03 06:51:48
【问题描述】:
我正在尝试使用 MEAN 堆栈上的应用程序,但在使用节点 require 函数时遇到了问题。
我目前的结构如下:
-- app
-- images
-- scripts
-- app.js // app configuration
-- contollers.js
-- models.js
-- routes.js
-- styles // scss partials
-- node_modules
-- public
-- images
-- scripts
-- app.js // concatenated and uglified js from app/scripts
-- styles // concatenated and compressed scss partials
-- vendor // third party libraries
-- views // html partials
bower.json
index.html
gruntfile.js
pacakge.json
server.js
注意:我知道这不是构建我的应用程序的最佳方式,并将对其进行重构,以便它使用更多的modular system。
我遇到的问题是,当我将 var mongoose = require('mongoose'); 添加到 models.js 文件时,我收到以下错误:
ReferenceError: 要求未定义
令人费解的是,这行代码在server.js中完美运行,为什么在models.js中不行?
【问题讨论】:
-
看起来很奇怪,它当然应该在 models.js 中工作,假设您仍然在节点而不是浏览器中运行它。浏览器没有内置
require方法,因此使用了串联构建过程。 -
我正在通过浏览器运行它。这听起来像问题。我该如何解决这个问题?我一直在关注的所有教程似乎都没有做任何特别的事情来让 require 在浏览器中工作。我不完全了解这个节点巫毒是如何工作的。
-
好吧,你不能直接从浏览器访问数据库,所以我怀疑你应该在浏览器脚本中包含猫鼬。
-
很遗憾,没有,当我开始使用它时,我没有关注任何东西,而是使用 yeoman-generators,然后对它们进行逆向工程,直到我了解它们在做什么。
-
这是一个,虽然我没有专门使用过这个:meanjs.org/generator.html
标签: javascript angularjs node.js express mongoose