Я пытаюсь следовать этому 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?
Я почти там, 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, и как отладить это?
Это кажется вам не хватает необходимого модуля. Возможно, повторите запуск «npm install mongoskin --save» в каталоге приложения, чтобы убедиться. Не забудьте использовать '--save' или' --save-dev', когда вы устанавливаете зависимости. –
Попробуйте следовать этому решению https://github.com/kissjs/node-mongoskin/issues/153#issuecomment-85740639 – Maxali
@PeteGarafano спасибо, я нашел решение с двумя URL-адресами, которые я разместил, но моя страница пока не работает , не могли бы вы взглянуть на мое редактирование? – Paul