错误:在 Mac 上找不到模块“../build/Release/bson”
Posted
技术标签:
【中文标题】错误:在 Mac 上找不到模块“../build/Release/bson”【英文标题】:Error: Cannot find module '../build/Release/bson' on Mac 【发布时间】:2017-01-22 19:36:15 【问题描述】:我正在使用 node.js 在我的 chrome 上运行我的教授提供的一个应用程序。出了点问题,但我不知道,因为我是菜鸟。 结构如下:
/app
/models
answers.js
questions.js
sessions.js
user.js
passport.js
qmanage.js
routes.js
/config
auth.js
database.js
mcd.js
package.json
/public
some css png fonts jpg document
qloader.js
server.js
/views
some ejs document
一开始就说明这个问题:
module.js:457
throw err;
^
Error: Cannot find module 'mongoose'
at Function.Module._resolveFilename (module.js:455:15)
at Function.Module._load (module.js:403:25)
at Module.require (module.js:483:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/Users/shen/Desktop/os/cse303.p2/server.js:2:16)
at Module._compile (module.js:556:32)
at Object.Module._extensions..js (module.js:565:10)
at Module.load (module.js:473:32)
at tryModuleLoad (module.js:432:12)
at Function.Module._load (module.js:424:3)
然后,基于此帮助 Node.js error Error: Cannot find module 'mongoose' 我在项目的根路径中运行 npm install mongoose
。然后我有以下错误:
dyn143030:cse shen$ node server.js
Error: Cannot find module '../build/Release/bson'
at Function.Module._resolveFilename (module.js:455:15)
at Function.Module._load (module.js:403:25)
at Module.require (module.js:483:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/Users/shen/Desktop/os/cse303.p2/node_modules/bson/ext/index.js:15:10)
at Module._compile (module.js:556:32)
at Object.Module._extensions..js (module.js:565:10)
at Module.load (module.js:473:32)
at tryModuleLoad (module.js:432:12)
at Function.Module._load (module.js:424:3) code: 'MODULE_NOT_FOUND'
js-bson: Failed to load c++ bson extension, using pure JS version
events.js:160
throw er; // Unhandled 'error' event
^
Error: Invalid mongodb uri. Missing hostname
at muri (/Users/shen/Desktop/os/cse303.p2/node_modules/muri/lib/index.js:40:11)
at NativeConnection.Connection.open (/Users/shen/Desktop/os/cse303.p2/node_modules/mongoose/lib/connection.js:195:16)
at Mongoose.connect (/Users/shen/Desktop/os/cse303.p2/node_modules/mongoose/lib/index.js:212:15)
at Object.<anonymous> (/Users/shen/Desktop/os/cse303.p2/server.js:4:10)
at Module._compile (module.js:556:32)
at Object.Module._extensions..js (module.js:565:10)
at Module.load (module.js:473:32)
at tryModuleLoad (module.js:432:12)
at Function.Module._load (module.js:424:3)
at Module.runMain (module.js:590:10)
at run (bootstrap_node.js:394:7)
at startup (bootstrap_node.js:149:9)
at bootstrap_node.js:509:3
我试图从这个帮助中找到解决方案 Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' js-bson: Failed to load c++ bson extension, using pure JS version 但似乎不是我的情况,因为我使用的是 OS X 10.11.3
dyn143030:cse shen$ node -v
v6.5.0
dyn143030:cse shen$ npm -v
3.10.3
从我的角度来看,我认为系统发现 bson 有问题,那么如何修改呢?谢谢!如果需要更多信息,请告诉我。
【问题讨论】:
您是否尝试过npm update
只是为了确保所有内容都已更新?
我刚试过,没用
【参考方案1】:
我在 node_modules\bson\ext\index.js 中找到
并在第 10 行更改路径
bson = require('../build/Release/bson');
到 bson = require('bson');
【讨论】:
在 node_modules 下编辑任何东西都是一种讨厌的 hack。 我不建议更换模块。我部署到 Heroku 并通过阅读 package.json 安装所有模块。【参考方案2】:您可以尝试将 mongoose 添加到 package.json 文件中的依赖项列表中,或者也可以在项目文件夹中执行 >npm install mongoose。
【讨论】:
以上是关于错误:在 Mac 上找不到模块“../build/Release/bson”的主要内容,如果未能解决你的问题,请参考以下文章