我正在尝试遵循此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?
我几乎在那里,端口的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,以及如何调试这个?
答案 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
答案 1 :(得分:-1)
根据教程,您不应该使用npm安装mongodb。看起来您正在使用Linux,请按照此链接上的其中一个教程进行操作:
https://docs.mongodb.org/manual/administration/install-on-linux/
检查你的package.json mongodb(如果它在那里,删除它)应该工作