您好:我在网上找到如何使用mongoose和node.js执行简单的数据库连接,模式创建和基本CRUD的困难时间。现在我有以下代码,但我收到错误:
“TypeError:object不是函数
在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);
答案 0 :(得分:9)
您正在尝试实例化Schema的实例。我会改变
User = new Schema({
要
UserSchema = new Schema({
以及稍后的电话
var User = mongoose.model('user', UserSchema);
最后
var user = new User();
答案 1 :(得分:0)
在架构定义之后。
//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();