我认为这对尝试它的其他人可能有用...
我开始研究猫鼬并尝试了Getting Started 指南。我没有在报告的地方看到上述错误。但是,我确实间歇性地看到了它。如果发生这种情况,请遵循下面的#3。以下是我的观察:
问题#1。如果我复制粘贴整个代码,我会看到“我没有名字”作为单引号的问题 don't没有转义。
解决方案#1。我尝试使用 \ 和 \\ 进行转义,但没有成功。谷歌搜索没有帮助。经过一些研究,我发现它可以容忍函数之外的单引号。但是,在函数内部它不起作用。所以,我在函数之外定义了一个变量。无论如何,最好在单独的文档中定义字符串以进行本地化。最重要的是,它有效。 :)
问题#2。 我在
蓬松的.speak();
TypeError: fluffy.speak 不是函数
这里由于第一个 'mongoose.model(...)' 没有这个方法,以后添加它并重新运行 'mongoose.model(...)' 将无济于事。
Solution#2。评论第一个'mongoose.model(...)'
问题#3。当我从网站复制粘贴代码时,会导致奇怪的错误。
Solution#3. 刚刚删除了 Notepad++ 中行尾的所有制表符和空格。这样就解决了。
这是对我有用的代码(不用说,如果它不起作用,请先复制粘贴到记事本中):
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection.error:'));
db.once('open', function(callback) {
//yay!
});
var kittySchema = mongoose.Schema({
name: String
});
//var Kitten = mongoose.model('Kitten', kittySchema);
//var silence = new Kitten({ name: 'Silence' });
//console.log(silence.name);
//console.log(silence);
var noname = "I don't have a name";
kittySchema.methods.speak = function () {
var greeting = this.name
? "Meow name is " + this.name
: noname;
console.log(greeting);
}
var Kitten = mongoose.model('Kitten', kittySchema);
var fluffy = new Kitten({ name : 'fluffy' });
fluffy.speak();