【问题标题】:Mongoose, Cygwin and MongoDB - not savingMongoose、Cygwin 和 MongoDB - 不保存
【发布时间】:2011-07-01 13:00:33
【问题描述】:

我对 mongo 和 node.js 完全陌生,所以我还处于游戏阶段。

我运行的是 Windows 7,所以我必须使用 Cygwin 才能使用 node.js。对于 mongo,我将二进制文件复制到 cygwin/bin/ 文件夹并启动 mongod - 到目前为止有效。我可以创建数据库、表格等。

现在我想在 node.js 中使用 Mongoose。我通过 npm 安装它,它似乎可以工作,但我无法保存我的记录。

这是我正在使用的代码:

var mongoose = require('mongoose'),
sys  = require('sys'),
Schema = mongoose.Schema;

mongoose.connect('mongodb://localhost/test');

// schema definition
var User = new Schema({
    name     : String
});

mongoose.model('User', User);

// creating an user
var UserModel = mongoose.model('User'); 
var u = new UserModel();
u.name = 'John';

// inserting
u.save(function(){
    sys.puts('Saved!');
});

我从来没有看到我的“已保存!”输出,它不会保存它。有什么建议吗?

【问题讨论】:

  • 在这里完美运行。唯一的区别是我直接在 Windows 中运行 MongoDB,而不是在 Cygwin 中。从它的站点获取 MongoDB 二进制文件。
  • 我在 Windows 中直接运行 MongoDB,但我有同样的问题,我可以通过 MongoVUE 连接到数据库,所以一切似乎都正常,但是当我尝试使用 mongoose 保存实例时,回调从来不叫!你解决了这个问题吗?
  • 好的,我解决了,我不得不写“127.0.0.1”作为mongodb服务器,它不喜欢“localhost”作为服务器,这似乎是cygwin环境的一种奇怪行为..
  • 我也面临着类似的问题。所以尝试从 windows 命令提示符而不是 cygwin 运行 mongod。但这并没有解决我的问题。有什么线索吗?还有什么问题?

标签: mongodb node.js cygwin mongoose


【解决方案1】:

刚刚遇到这个问题。尝试将以下行添加到您的主机文件中:

127.0.0.1  localhost

你的主机文件应该在C:\Windows\System32\drivers\etc附近的某个地方

【讨论】:

  • Windows 7 默认使用 IPv6 地址 ::1 作为 localhost,因此在 hosts 文件中为 localhost 指定 IPv4 地址会将其更改为 IPv4,这可能是 mongodb 使用的协议。请注意,etc 目录可能是隐藏的,只有当您以管理员身份编辑文件时,hosts 文件才可编辑。
猜你喜欢
  • 2016-11-22
  • 2020-10-17
  • 1970-01-01
  • 2019-02-20
  • 2014-11-09
  • 2017-07-27
  • 2020-10-19
  • 2011-11-23
  • 1970-01-01
相关资源
最近更新 更多