【发布时间】:2015-05-08 03:57:31
【问题描述】:
我在我的Cubieboard 上安装了Cubian 操作系统。 然后我使用tutorial 安装了 node.js 和 mongoDB。 看来 node.js 工作正常。我可以启动 mongod 服务,但我有几个问题:
- 我无法执行 mongo shell:找不到命令
- localhost:27017(与http://127.0.0.1:27017/相同不可用)
- 我无法在我的 node.js 代码中连接到 mongoDB
-
npm install产生很多错误,我无法使用此命令安装所需的模块(但我仍然可以使用nmp install module_name命令)
我的测试 node.js 代码:
var express = require('express');
// Mongoose import
var mongoose = require('mongoose');
var db = mongoose.connection;
db.on('error', console.error);
db.once('open', function() {
// Create your schemas and models here.
console.log('Connected');
});
// Mongoose connection to MongoDB (ted/ted is readonly)
mongoose.connect('mongodb://127.0.0.1:27017/test', function (error) {
if (error) {
console.log(error);
}
});
// Mongoose Schema definition
var Schema = mongoose.Schema;
var UserSchema = new Schema({
first_name: String,
last_name: String,
email: String
});
// Mongoose Model definition
var User = mongoose.model('users', UserSchema);
// Bootstrap express
var app = express();
// URLS management
app.get('/', function (req, res) {
res.send("<a href='/users'>Show Users</a>");
});
app.get('/users', function (req, res) {
User.find({}, function (err, docs) {
res.json(docs);
});
});
app.get('/users/:email', function (req, res) {
if (req.params.email) {
User.find({ email: req.params.email }, function (err, docs) {
res.json(docs);
});
}
});
// Start the server
var server = app.listen(3000, function () {
var host = server.address().address
var port = server.address().port
console.log('Example app listening at http://%s:%s', host, port)
});
当我执行sudo node server.js 命令时,我得到以下信息:
Example app listening at http://0.0.0.0:3000
[Error: failed to connect to [127.0.0.1:27017]]
如您所见,IP 地址不正确,并且 localhost:3000 (127.0.0.1:3000) 也不可用。
有人可以帮助我吗? 谢谢!
【问题讨论】:
-
尽管提供了代码,但如果构建目标可执行文件不存在,这似乎表明您的 MongoDB 安装不成功。至少它们不在路径中,并且没有证据支持您有一个正在运行的
mongod进程。所以这真的不是一个编程问题,因此不在此处讨论。