node.js - 对于服务器端 meteor ,为什么没有定义 "module"?

标签 node.js meteor

我正在使用一些具有

的 Node 代码
module.exports  = a;

给出:

ReferenceError: module is not defined

那么建议的解决方法分别是什么?我更愿意拥有一些简单的已知代码,而不是安装一个“神奇”地完成这项工作的软件包。

这是怎么回事? meteor 服务器代码是否以某种方式在非 Node 上运行?我知道我们有纤维包裹,但我不认为你可以“取消定义” Node 环境基础的东西?

W20150202-16:07:12.555(-8)? (STDERR)/Users/dc/.meteor/packages/meteor-tool/.1.0.40.prjwsp++os.osx.x86_64+web.browser+web.cordova/meteor-tool-os.osx.x86_64/dev_bundle/server-lib/node_modules/fibres/future.js:173 W20150202-16:07:12.555(-8)? (STDERR)抛出(前); W20150202-16:07:12.555(-8)? (标准错误)^ W20150202-16:07:12.596(-8)? (STDERR)ReferenceError:模块未定义 W20150202-16:07:12.596(-8)? (STDERR) 在 __coffeescriptShare (packages/dcsan:ribot/vendor/rivescript-js/lib/rivescript.js:2913:1) W20150202-16:07:12.596(-8)? (STDERR) 在 RiveScript (packages/dcsan:ribot/vendor/rivescript-js/lib/rivescript.js:2910:1) W20150202-16:07:12.596(-8)? (STDERR) 在 __coffeescriptShare (packages/dcsan:ribot/vendor/rivescript-js/lib/rivescript.js:2911:1) W20150202-16:07:12.597(-8)? (STDERR)位于/Users/dc/dev/shumi/chatU/app/.meteor/local/build/programs/server/packages/dcsan_ribot.js:2937:4 W20150202-16:07:12.597(-8)? (STDERR)位于packages/dcsan:ribot/both/startup.coffee:13:23 W20150202-16:07:12.597(-8)? (STDERR)位于/Users/dc/dev/shumi/chatU/app/.meteor/local/build/programs/server/boot.js:205:10

最佳答案

Meteor 使用 vm 模块创建新上下文。我怀疑普通的 node.js 也是如此,关键字 module 没有什么“基础”。在底层,node.js 加载器将所有文件包装到闭包中,并将特殊变量(例如 __dirname)传递给它们。

http://nodejs.org/api/vm.html

关于node.js - 对于服务器端 meteor ,为什么没有定义 "module"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28289637/

相关文章:

javascript - 序列化返回日期的时间错误

node.js - 通过 Grunt 运行 Node 应用程序

security - 如何使用 check 防止恶意 Meteor 订阅

javascript - 如何导航回搜索页面?

javascript - 如何使用 Meteor 加载网站图标

node.js - Jenkins NodeJS 插件 : can't execute 'node'

node.js - 在 Bucket.js 中使用 get 和 set 时出现 Couchbase 网络错误

mysql - nodejs-mysql 文件中无效的 utf8 字符字符串加载数据

javascript - Meteor 发送给活跃用户

javascript - Meteor JS 是否可以灵活地成为全栈框架?