2

您好:我很难在线查找如何使用 mongoose 和 node.js 执行简单的数据库连接、模式创建和基本 CRUD。现在我有以下代码,但收到错误:

“类型错误:对象不是函数

在 Schema.CALL_NON_FUNCTION_AS_CONSTRUCTOR(本机)..”

// Launch express and server
var express = require('express');
var app = express.createServer();


//connect to DB
var mongoose = require('mongoose');
var db = mongoose.connect('mongodb://localhost/napkin_0.1');


// Define Model
var Schema = mongoose.Schema,
    ObjectId = Schema.ObjectId;

User = new Schema({
  'title': { type: String, index: true },
  'data': String,
  'tags': [String],
  'user_id': ObjectId
});

//Define Collection
mongoose.model('Document', User);


var user = new User();
user.title = "TEST TITLE";
user.save();


//Launch Server
app.listen(3002);
4

2 回答 2

10

您正在尝试实例化 Schema 的实例。我会改变

User = new Schema({

UserSchema = new Schema({

后来随叫随到

var User = mongoose.model('user', UserSchema);

最后

var user = new User();
于 2011-06-13T04:06:24.737 回答
1

在您的架构定义之后。

//Define Collection
mongoose.model('Document', User);

上面的代码不是用来定义集合的,它是用来初始化模型对象的。

更改如下:

//Create Model Object
var UserModel = mongoose.model('user_model_name', User); // 2nd param -> User is a schema object

然后从模型对象中创建 Document 对象。如下:

var user_doc = new UserModel();

然后你可以使用 getter/setter 和方法。

user_doc.title = 'your text for title';
user_doc.save();
于 2013-01-02T11:18:33.203 回答