2016-01-21 3 views
2

Я пытаюсь следовать этому tutorial, я не могу запустить сервер узла из-за этой ошибки:Не удается запустить сервер узла, выдать базу данных mongodb?

TypeError: Cannot read property 'name' of undefined at makeSkinClass

Вот мой путь:

echo $PATH /usr/local/mysql/bin:/mongodb/bin:Users/Empon/npm/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/git/bin

я понял, что -g никогда не работает в моем терминале , поэтому я пытался постоянно добавлять пути к PATH, я добавил mongodb как для bashrc, так и для bash_profile.

Тогда я сделал npm install -g mongodb, у меня было так:

[email protected] requires a peer of [email protected]~0.0 but none was installed.

Поэтому я добавил npm install --save kerberos mongodb и результат был:

npm WARN skippingAction Module is inside a symlinked module: not running remove [email protected] node_modules/mongodb/node_modules/bson npm WARN skippingAction Module is inside a symlinked module: not running remove [email protected]

Теперь в моем проекте Node, я: node bin/www, чтобы начать server (я попробовал узел app.js, с «app.js» в файле конфигурации, но он не работал, поэтому я даю ./bin/www), а URL-адрес: http://localhost:3000/api/videos.

Вы знаете, что не так?


EDIT: Я получил это работает, с этими манипуляциями: установка более старой версии 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), ошибка:

Error: Not Found at /Applications/MAMP/htdocs/workspace/Vidzy/app.js:32:13 at Layer.handle [as handle_request] (/Applications/MAMP/htdocs/workspace/Vidzy/node_modules/express/lib/router/layer.js:95:5) at 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] waiting for connections on port 27017

ли кто-нибудь знает, почему я получаю 404, и как отладить это?

+1

Это кажется вам не хватает необходимого модуля. Возможно, повторите запуск «npm install mongoskin --save» в каталоге приложения, чтобы убедиться. Не забудьте использовать '--save' или' --save-dev', когда вы устанавливаете зависимости. –

+1

Попробуйте следовать этому решению https://github.com/kissjs/node-mongoskin/issues/153#issuecomment-85740639 – Maxali

+0

@PeteGarafano спасибо, я нашел решение с двумя URL-адресами, которые я разместил, но моя страница пока не работает , не могли бы вы взглянуть на мое редактирование? – Paul

ответ

0

Я решил свою проблема: версия mongodb была неправильной, и так была версия монгоскина. Я не знаю много о том, почему произошла ошибка, но настройка проекта с помощью mongodb 1.4 и mongoskin 1.3 работает нормально.

npm install [email protected] --save

и

$ npm install [email protected]~1.4 --save

Источник: Does run mongoskin only with mongodb version 1.4 and older?


В случае, если что-то не так с файлом отладки, здесь сделать изменения:

заменить: bson = require('../build/Release/bson');

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

в:

npm module mongodb ..node_modules\mongodb\node_modules\bson\ext\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

Согласно руководству, вы не должны устанавливать mongodb с npm. Похоже, вы используете Linux, так по одной из учебных пособий по этой ссылке:

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

Проверьте свой package.json для MongoDB (если она есть, удалите его), то должен работать

+2

'npm install mongodb' does * not * install MongoDB Server. Он устанавливает драйвер MongoDB Node.js. –

+0

спасибо в любом случае за ответ, я нашел решение из 2-х ссылок из stackoverflow. – Paul

Смежные вопросы