首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不插入mongoose的VPS上的MongoDB

不插入mongoose的VPS上的MongoDB
EN

Stack Overflow用户
提问于 2015-05-04 20:38:45
回答 1查看 307关注 0票数 1

我使用mongoose创建了一个简单的演示,它在localhost上工作得很好:

代码语言:javascript
复制
mongoose.connect('mongodb://localhost/mindmap', function(err, next) {
    if(err) return next(err);
    console.log('database connected');
});

它通过一个简单的查找来获取数据:

代码语言:javascript
复制
/* GET mindmaps. */
router.get('/', function(req, res, next) {
  Mindmap.find(function (err, mindmaps) {
    if (err) return next(err);

    res.json(mindmaps);
  });
});

并通过套接字连接添加数据

代码语言:javascript
复制
  // handle adding new mindmaps
  socket.on('mindmap.add', function (data) {
    Mindmap.create(data, function (err, mindmap) {
      if (err) throw err;

      mindmaps.push(mindmap);
      io.sockets.emit('mindmap.add', mindmap);
    });
  });

现在所有这些都在本地运行得很好。

今天我在我的CentOS 6.5VPS上安装了npm,bower,应用本身和MongoDB。我启动了mongo服务,并在服务器上更改了app.js以连接到正确的ip/端口:

代码语言:javascript
复制
mongoose.connect('mongodb://127.0.0.1:27017/mindmap', function(err, next) {

当我使用node bin/www启动应用程序时,connect没有抛出任何错误,只是简单地声明数据库已连接。/mindmap提供一个空数组(这在这一点上是合乎逻辑的)。通过套接字连接添加新的思维导图甚至会发出一个适当的mindmap对象,html将显示它。没有错误,但也没有保存任何内容,在刷新时,它再次开始为空。另外,在mongo shell中,集合中没有任何东西..如果我手动添加一些东西,我在/mindmap中看不到它。

完整的客户端代码在http://mindmap.solidwebcode.com:3000/mindmap

以下是模型以供参考:

代码语言:javascript
复制
var mongoose = require('mongoose');

var SubjectSchema = new mongoose.Schema({
  title: String,
  x: Number,
  y: Number,
  w: Number,
  h: Number,
  parent: mongoose.Schema.Types.ObjectId
});

var MindmapSchema = new mongoose.Schema({
    name: String,
    theme: String,
    subjects: [SubjectSchema],
    created_at: { type: Date, default: Date.now },
    updated_at: { type: Date, default: Date.now }
});

module.exports = mongoose.model('Mindmap', MindmapSchema);

我使用以下命令安装mongodb:

代码语言:javascript
复制
sudo yum --enablerepo=epel install mongodb mongodb-server
sudo service mongod start

尽管有一些警告,但启动mongo也能按预期工作:

代码语言:javascript
复制
Server has startup warnings: 
2015-05-04T13:42:08.955+0200 [initandlisten] 
2015-05-04T13:42:08.955+0200 [initandlisten] ** WARNING: You are running in OpenVZ which can cause issues on versions of RHEL older than RHEL6.
2015-05-04T13:42:08.955+0200 [initandlisten] 

我以前从未在VPS上安装过mongo并使用过它。我是不是漏掉了什么琐碎的东西?

EN

回答 1

Stack Overflow用户

发布于 2015-05-05 22:39:44

问题不是MongoDB不工作,而是套接字连接启动到localhost:3000,这与外部服务器不同。因此,虽然远程服务器上没有发生任何事情,但本地服务器正在接受套接字连接,并在自己的数据库中添加新记录。

解决方案很简单:将套接字连接更改为远程地址。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30030424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档