MongoDB - 错误:无法找到模块' ../ build / Release / bson'

时间:2015-01-25 12:58:00

标签: javascript node.js mongodb typescript

我尝试按以下方式运行打字稿example,导致以下错误:

$ mongod --dbpath /home/u/databases
$ npm install
$ tsc --sourcemap --module commonjs app.ts
$ node app.js                             
{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }
js-bson: Failed to load c++ bson extension, using pure JS version
========================================================================================
=  Please ensure that you set the default write concern for the database by setting    =
=   one of the options                                                                 =
=                                                                                      =
=     w: (value of > -1 or the string 'majority'), where < 1 means                     =
=        no write acknowledgement                                                       =
=     journal: true/false, wait for flush to journal before acknowledgement             =
=     fsync: true/false, wait for flush to file system before acknowledgement           =
=                                                                                      =
=  For backward compatibility safe is still supported and                              =
=   allows values of [true | false | {j:true} | {w:n, wtimeout:n} | {fsync:true}]      =
=   the default value is false which means the driver receives does not                =
=   return the information of the success/error of the insert/update/remove            =
=                                                                                      =
=   ex: new Db(new Server('localhost', 27017), {safe:false})                           =
=                                                                                      =
=   http://www.mongodb.org/display/DOCS/getLastError+Command                           =
=                                                                                      =
=  The default of no acknowledgement will change in the very near future                =
=                                                                                      =
=  This message will disappear when the default safe is set on the driver Db           =
========================================================================================

/home/u/tmp/TypeScriptSamples/imageboard/app.js:9
app.configure(function () {
    ^
TypeError: Object function (req, res, next) {
    app.handle(req, res, next);
  } has no method 'configure'
    at Object.<anonymous> (/home/u/tmp/TypeScriptSamples/imageboard/app.js:9:5)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:929:3

此外,看看db.ts我认为http文件中缺少urlpackage.json,我是对的吗?

如何用mongodb修复上述错误?

2 个答案:

答案 0 :(得分:7)

Linux操作系统中的

首先从node_modules中删除bson文件夹并运行此命令:

sudo apt-get install gcc make build-essential 

然后重新启动{j}等{1}}之类的nodejs文件。希望它有用

答案 1 :(得分:1)

  

查看db.ts我认为package.json文件中缺少http和url,我是对的吗?

没有。这些模块是核心nodejs的一部分。

错误的来源是package.json,指定在兼容版本锁中没有向后的最小数字。 https://github.com/Microsoft/TypeScriptSamples/blob/master/imageboard/package.json#L6我会将'&gt; ='更改为更难的版本,例如3.x