node.js - 简单的 Mongoose 示例不起作用

标签 node.js mongodb mongoose

我正在尝试运行我在 stackoverflow 上找到的一个简单的 Mongoose /Node 示例:

var mongoose = require('mongoose'),
db = mongoose.connect('mongodb://localhost/db'),
Schema = mongoose.Schema;

var sentinel = setTimeout(function(){
    throw "failed to connect to MongoDB after one minute!";
}, 60*1000); // 60 seconds


mongoose.model('User', new Schema({
    properties: {
        name    : { type: String, index: true }
    }
}));    

var User = db.model('User');

var u = new User();
u.name = 'Foo';
u.save();

User.find().all(function(arr) {
    clearTimeout(sentinel); // cancel the timeout sentinel
    console.log('Users found');
    console.log(arr);
    console.log('length='+arr.length);
});

process.stdin.resume();

如果我的代码正确,在脚本末尾的终端中应该有一个输出,其中应该打印消息“找到用户”和集合中的所有用户。但我只是收到超时消息。为什么?

我在 Amazon EC2 微型实例上运行我的服务器。安装了 Node、Mongodb 和 mongoose,Mongodb 服务器正在运行(我可以通过“mongo”从终端与其交互)。我还创建了目录/data/db。

最佳答案

我不知道 Mongoose ,但 u.save() 可能是异步的,因为它会写入数据库。尝试

u.save(function (err){
    if(err) console.log(err);
    User.find().all(function(arr) {
        clearTimeout(sentinel); // cancel the timeout sentinel
        console.log('Users found');
        console.log(arr);
        console.log('length='+arr.length);
    });
});

编辑:这很好用

var mongoose = require('mongoose');
var connection = mongoose.connect('mongodb://localhost/my_database');

var Schema = mongoose.Schema
var User = new Schema({
    author    : String
  , type      : String
});

var MyUserModel = mongoose.model('User', User); //create and access the model User

var u = new MyUserModel();
u.author = 'authorname';
u.save(function(err){
    if (err) console.log(err);
});

MyUserModel.find({}, function (err,docs) {
    console.log(docs);
});

关于node.js - 简单的 Mongoose 示例不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11342299/

相关文章:

javascript - 将 NodeJS 后端代码添加到基于 Angular 种子的项目

C# MongoDB 索引导致奇怪的重复异常

javascript - 向对象 Mongoose 方式添加字段

javascript - mainWindow未在 Electron js中接收数据

node.js - 在带有 npm 的 Lambda 函数中使用 AWS Cognito

linux - 强制 MongoDB 预取内存

javascript - meteor 客户端访问现有的 mongoDB

mongoDB查询获取所有未被用户关注的用户

mongodb - `mongolab` - 发布时出错,无法发布数据

node.js - 如何组织我的规范文件?