使用NodeJS安装Monk时出错无法运行app

时间:2017-08-29 17:59:04

标签: node.js mongodb monk

我尝试在我的NodeJS应用中设置mongodb连接,但是在需要和尚的时候我无法运行...

我的代码:

...
var mongo = require('mongodb');
var monk = require('monk');
var db = monk('localhost:27017/app');

...

// Make our db accessible to our router
app.use(function(req,res,next){
    req.db = db;
    next();
});

app.use('/', routes);

在命令提示符下,在项目根文件夹中安装mongodb和monk,使用 npm install --save mongodb npm install --save monk

但是当我尝试运行我的项目时,我得到了

C:\Users\asilva\Documents\RSRacingUFRGSsite>node app C:\Users\asilva\Documents\RSRacingUFRGSsite\node_modules\monk\lib\applyMiddlewares.js:24
      monkInstance,
                  ^ SyntaxError: Unexpected token ,
    at exports.runInThisContext (vm.js:73:16)
    at Module._compile (module.js:443:25)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> (C:\Users\asilva\Documents\RSRacingUFRGSsite\node_modules\monk\lib\collection.js:1:86)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)

我检查了applyMiddlewares.js,看到它没有错..:

module.exports = function applyMiddleware (middlewares) {
  return function (monkInstance, collection) {
    var chain = []

    var middlewareAPI = {
      monkInstance,
      collection
    }
    chain = middlewares.map(function (middleware) {
      return middleware(middlewareAPI)
    })
    return compose(chain)
  }
}

1 个答案:

答案 0 :(得分:1)

问题可能是您使用的节点版本不支持ES2015 Object property shorthand

要解决此问题,请将Node升级到v4.8.4或更高版本,或者为monk库创建一个pull请求,以便更改分配:

choices_as_values

我建议升级到最新版本(编写本文时为v8.4.0),这样您就可以访问漂亮的异步/等待和保证功能,以及许多错误修复和修复程序。安全更新以来。