Javascript ReferenceError:未定义架构
我正在尝试在节点中使用外部模式和Mongoose,但不断出现以下错误: ReferenceError:未定义ContactSchema 我的ContactSchema.js如下所示:Javascript ReferenceError:未定义架构,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我正在尝试在节点中使用外部模式和Mongoose,但不断出现以下错误: ReferenceError:未定义ContactSchema 我的ContactSchema.js如下所示: var mongoose = require('mongoose'); var Schema = mongoose.Schema; var ContactSchema = new Schema({ name: String, address: String }); module.exports = m
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var ContactSchema = new Schema({
name: String,
address: String
});
module.exports = mongoose.model('ContactSchema', ContactSchema);
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/choredb');
require('../models/ContactSchema.js');
var routes = function(app) {
app.post('/createnew', function(req, res) {
console.log(req.body);
var contact = new ContactSchema();
contact.name = req.body.name;
contact.note = req.body.note;
contact.save(function(err){
if (err) {throw err;}
console.log('saved');
mongoose.disconnect();
});
});
}
module.exports = routes;
var contact = new db.contactModel();
我的routes.js文件如下所示:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var ContactSchema = new Schema({
name: String,
address: String
});
module.exports = mongoose.model('ContactSchema', ContactSchema);
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/choredb');
require('../models/ContactSchema.js');
var routes = function(app) {
app.post('/createnew', function(req, res) {
console.log(req.body);
var contact = new ContactSchema();
contact.name = req.body.name;
contact.note = req.body.note;
contact.save(function(err){
if (err) {throw err;}
console.log('saved');
mongoose.disconnect();
});
});
}
module.exports = routes;
var contact = new db.contactModel();
我很确定它离我们不远,但我不明白它为什么找不到模式。首先,您必须在routes.js中包含ContactSchema.js文件,并使用以下命令:
var db = require('../models/ContactSchema.js');
然后,您可以在route.js中定义模式,如下所示:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var ContactSchema = new Schema({
name: String,
address: String
});
module.exports = mongoose.model('ContactSchema', ContactSchema);
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/choredb');
require('../models/ContactSchema.js');
var routes = function(app) {
app.post('/createnew', function(req, res) {
console.log(req.body);
var contact = new ContactSchema();
contact.name = req.body.name;
contact.note = req.body.note;
contact.save(function(err){
if (err) {throw err;}
console.log('saved');
mongoose.disconnect();
});
});
}
module.exports = routes;
var contact = new db.contactModel();
我希望这对你有帮助
编辑:
如果使用上面的代码,还必须从ContactSchema.js导出模式,并包含以下内容
var contactModel = mongoose.model('ContactSchema', ContactSchema);
exports.contactModel = contactModel;
如果您搜索一个关于如何将mongoose与node一起使用的非常好的示例,请查看以下git项目:首先,您必须在routes.js中包含ContactSchema.js文件,并使用以下命令:
var db = require('../models/ContactSchema.js');
然后,您可以在route.js中定义模式,如下所示:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var ContactSchema = new Schema({
name: String,
address: String
});
module.exports = mongoose.model('ContactSchema', ContactSchema);
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/choredb');
require('../models/ContactSchema.js');
var routes = function(app) {
app.post('/createnew', function(req, res) {
console.log(req.body);
var contact = new ContactSchema();
contact.name = req.body.name;
contact.note = req.body.note;
contact.save(function(err){
if (err) {throw err;}
console.log('saved');
mongoose.disconnect();
});
});
}
module.exports = routes;
var contact = new db.contactModel();
我希望这对你有帮助
编辑:
如果使用上面的代码,还必须从ContactSchema.js导出模式,并包含以下内容
var contactModel = mongoose.model('ContactSchema', ContactSchema);
exports.contactModel = contactModel;
如果您搜索一个关于如何将mongoose与node一起使用的非常好的示例,请查看以下git项目:如果您在“example\u模块”中导出某些内容,require(“example\u模块”)将返回某些内容。您编写的代码返回内容模型,尽管您没有声明为变量 我的编码方式是
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var ContactSchema = new Schema({
name: String,
address: String
});
var Content = mongoose.model('Content', ContentScehma);
module.exports = Content;
在路由器或其他什么地方
app.post("/content", function(req, res, next){
var Content = require("../models/ContactSchema.js");
var ContentSchema = ContentModel.schema;
var aContent = new Content({name: "MyName", address: "MyAddress"});
aContent.save(function(err, savedContent){
if(err) return next(err);
return res.send(savedContent);
});
});
如果您在“示例模块”中导出某些内容,require(“示例模块”)将返回某些内容。您编写的代码返回内容模型,尽管您没有声明为变量 我的编码方式是
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var ContactSchema = new Schema({
name: String,
address: String
});
var Content = mongoose.model('Content', ContentScehma);
module.exports = Content;
在路由器或其他什么地方
app.post("/content", function(req, res, next){
var Content = require("../models/ContactSchema.js");
var ContentSchema = ContentModel.schema;
var aContent = new Content({name: "MyName", address: "MyAddress"});
aContent.save(function(err, savedContent){
if(err) return next(err);
return res.send(savedContent);
});
});
尝试将模型名称更改为
module.exports=mongoose.model('Contact',ContactSchema)代码>然后将其实例化为var contact=new contact()代码>?尝试将模型名称更改为module.exports=mongoose.model('Contact',ContactSchema)代码>然后将其实例化为var contact=new contact()代码>?