Mongoose、Cygwin 和 MongoDB - 不保存
Posted
技术标签:
【中文标题】Mongoose、Cygwin 和 MongoDB - 不保存【英文标题】:Mongoose, Cygwin and MongoDB - not saving 【发布时间】: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。但这并没有解决我的问题。有什么线索吗?还有什么问题? 【参考方案1】:刚刚遇到这个问题。尝试将以下行添加到您的主机文件中:
127.0.0.1 localhost
你的主机文件应该在C:\Windows\System32\drivers\etc
附近的某个地方
【讨论】:
Windows 7 默认使用 IPv6 地址 ::1 作为 localhost,因此在 hosts 文件中为 localhost 指定 IPv4 地址会将其更改为 IPv4,这可能是 mongodb 使用的协议。请注意,etc 目录可能是隐藏的,只有当您以管理员身份编辑文件时,hosts 文件才可编辑。以上是关于Mongoose、Cygwin 和 MongoDB - 不保存的主要内容,如果未能解决你的问题,请参考以下文章