无法启动节点服务器,与mongodb数据库问题?

时间:2016-01-21 22:10:30

标签: node.js mongodb

我正在尝试遵循此tutorial,由于此错误,我无法运行节点服务器:

  

TypeError:无法读取未定义的属性“name”       在makeSkinClass

这是我的路径:

  

回显$ PATH   在/ usr /本地/ MySQL的/斌:/ mongodb的/ bin中:用户/ Empon / NPM /斌:在/ usr / local / bin目录:在/ usr / bin中:/ bin中:/ usr / sbin目录:/ sbin目录中:/ opt / X11 /箱:在/ usr /本地/ GIT中/ bin中

我发现-g永远不会在我的终端中运行,所以我尝试永久地将路径添加到PATH,我将mongodb添加到bashrc和bash_profile。

然后我做了npm install -g mongodb,我有了这个:

  

mongodb-core@1.2.32需要一个kerberos@~0.0的同行,但没有   安装。

所以我添加了npm install --save kerberos mongodb,结果是:

  

npm WARN skippingAction模块位于符号链接模块内:不是   运行删除bson@0.4.21 node_modules / mongodb / node_modules / bson npm   WARN跳过动作模块位于符号链接模块内:未运行   删除core-util-is@1.0.2

现在,在我的Node项目中,我执行:node bin/www启动服务器(我尝试使用配置文件中的“app.js”节点app.js,但它不起作用,所以我让./bin/www),网址为:http://localhost:3000/api/videos

你知道出了什么问题吗?

编辑: 通过这些操作我得到了它的工作:安装旧版本的mongodb并更改配置文件中的一行:

Does run mongoskin only with mongodb version 1.4 and older?

Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' } js-bson: Failed to load c++ bson extension, using pure JS version

我几乎在那里,端口的url工作正常(http://localhost:3000/),但不是mongodb(http://localhost:3000/api/videos),但错误是:

  

错误:未找到       在/Applications/MAMP/htdocs/workspace/Vidzy/app.js:32:13       在Layer.handle [as handle_request](/Applications/MAMP/htdocs/workspace/Vidzy/node_modules/express/lib/router/layer.js:95:5)       在trim_prefix(/Applications/MAMP/htdocs/workspace/Vidzy/node_modules/express/lib/router/index.js:312:13)

我的代码是:

//in routes/video.js
var express = require('express');
var router = express.Router();
var monk = require('monk');
var db = monk('localhost:27017/vidzy');

router.get('/', function(req, res){
    var collection = db.get('videos');
    collection.find({}, function(err, videos){
       if (err) throw err;
       res.json(videos);
    });
});
module.exports = router;


//in app.js
// catch 404 and forward to error handler
app.use(function(req, res, next) {
  var err = new Error('Not Found');
  err.status = 404;
  next(err);
});

终端连接到mongoDB:

  

I NETWORK [initandlisten]等待端口27017上的连接

有人知道为什么我会得到404,以及如何调试这个?

2 个答案:

答案 0 :(得分:0)

我解决了我的问题:mongodb的版本不正确,mongoskin的版本也是如此。我不太清楚为什么会出现错误,但使用mongodb 1.4和mongoskin 1.3设置项目工作正常。

npm install mongoskin@1.3.20 --save

$ npm install mongodb@~1.4 --save

来源:Does run mongoskin only with mongodb version 1.4 and older?

如果调试文件出现问题,请执行以下更改:

替换: bson = require('../build/Release/bson');

用: bson = require('../browser_build/bson');

in:

  

npm模块mongodb   ..node_modules \ mongodb的\ node_modules \ BSON \分机\ index.js

来源:Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' } js-bson: Failed to load c++ bson extension, using pure JS version

答案 1 :(得分:-1)

根据教程,您不应该使用npm安装mongodb。看起来您正在使用Linux,请按照此链接上的其中一个教程进行操作:

https://docs.mongodb.org/manual/administration/install-on-linux/

检查你的package.json mongodb(如果它在那里,删除它)应该工作