问题描述
|
嗨,您好:我在网上很难找到如何使用mongoose和node.js进行简单的数据库连接,模式创建和基本CRUD。现在,我有以下代码,但出现错误:
\“ TypeError:对象不是函数
在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);
解决方法
您正在尝试实例化该架构的实例。我会改变
User = new Schema({
至
UserSchema = new Schema({
等一下
var User = mongoose.model(\'user\',UserSchema);
最后
var user = new User();
, 在架构定义之后。
//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();