Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 猫鼬中的类型错误_Javascript_Node.js_Mongodb_Mongoose - Fatal编程技术网

Javascript 猫鼬中的类型错误

Javascript 猫鼬中的类型错误,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我正在做作业,试图让我们今天在教程中使用的猫鼬代码生效。 但我有一个错误,我不知道为什么 index.js: 然后在start()函数中调用addRooms()将房间保存到数据库中 function start(req, res) { /*add rooms to mongodb*/ addRooms(); var player = req.body.player; // Sanitize the player name as it may be displayed

我正在做作业,试图让我们今天在教程中使用的猫鼬代码生效。 但我有一个错误,我不知道为什么

index.js:



然后在start()函数中调用addRooms()将房间保存到数据库中

function start(req, res) {
/*add rooms to mongodb*/
    addRooms();
    var player = req.body.player;
    // Sanitize the player name as it may be displayed
    req.session.player = sanitize(player).escape();
    req.session.currentRoom = "bridge"; // We start on the bridge
    res.redirect("/game")
}
但我得到了一个错误:



我已经缩小了范围,使之成为一个问题

var bridge = new Rooms2406 ({etc...});
我不明白这里出了什么问题,好像它不知道什么是房间2406,但我已经定义好了

有什么想法吗


谢谢

我认为问题在于没有调用setupRoomDb函数,该函数负责使用模型初始化变量room2406,因为该变量未定义,因此在调用addRooms函数时,会出现上述错误

未调用setupRoomDB的原因很简单,因为从未触发数据库打开事件,因为您尚未设置数据库连接,请使用mongoose.connect连接到您的数据库,它将解决您的错误

更新代码

var fs = require('fs');
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/myDatabase')//use appropriate database here.
var db = mongoose.connection;
var Rooms2406;

var setupRoomDB = function () {
    var roomSchema = mongoose.Schema({
    title: String,
    description: String,
    roomExits: [String]
    });
    Rooms2406 = mongoose.model("Rooms2406", roomSchema);
}
db.once('open', setupRoomDB);

我认为问题在于,没有调用setupRoomDb函数,该函数负责使用模型初始化变量room2406,因为该变量未定义,因此在调用addRooms函数时,会出现上述错误

未调用setupRoomDB的原因很简单,因为从未触发数据库打开事件,因为您尚未设置数据库连接,请使用mongoose.connect连接到您的数据库,它将解决您的错误

更新代码

var fs = require('fs');
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/myDatabase')//use appropriate database here.
var db = mongoose.connection;
var Rooms2406;

var setupRoomDB = function () {
    var roomSchema = mongoose.Schema({
    title: String,
    description: String,
    roomExits: [String]
    });
    Rooms2406 = mongoose.model("Rooms2406", roomSchema);
}
db.once('open', setupRoomDB);

我认为问题在于,没有调用setupRoomDb函数,该函数负责使用模型初始化变量room2406,因为该变量未定义,因此在调用addRooms函数时,会出现上述错误

未调用setupRoomDB的原因很简单,因为从未触发数据库打开事件,因为您尚未设置数据库连接,请使用mongoose.connect连接到您的数据库,它将解决您的错误

更新代码

var fs = require('fs');
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/myDatabase')//use appropriate database here.
var db = mongoose.connection;
var Rooms2406;

var setupRoomDB = function () {
    var roomSchema = mongoose.Schema({
    title: String,
    description: String,
    roomExits: [String]
    });
    Rooms2406 = mongoose.model("Rooms2406", roomSchema);
}
db.once('open', setupRoomDB);

我认为问题在于,没有调用setupRoomDb函数,该函数负责使用模型初始化变量room2406,因为该变量未定义,因此在调用addRooms函数时,会出现上述错误

未调用setupRoomDB的原因很简单,因为从未触发数据库打开事件,因为您尚未设置数据库连接,请使用mongoose.connect连接到您的数据库,它将解决您的错误

更新代码

var fs = require('fs');
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/myDatabase')//use appropriate database here.
var db = mongoose.connection;
var Rooms2406;

var setupRoomDB = function () {
    var roomSchema = mongoose.Schema({
    title: String,
    description: String,
    roomExits: [String]
    });
    Rooms2406 = mongoose.model("Rooms2406", roomSchema);
}
db.once('open', setupRoomDB);

看起来不像调用了
setupRoomDB
:未发出
db
上的
open
事件。如何创建到MongoDB数据库的连接?看起来不像调用了
setupRoomDB
:未发出
db
上的
open
事件。如何创建到MongoDB数据库的连接?看起来不像调用了
setupRoomDB
:未发出
db
上的
open
事件。如何创建到MongoDB数据库的连接?看起来不像调用了
setupRoomDB
:未发出
db
上的
open
事件。如何创建到MongoDB数据库的连接?谢谢!这是有道理的。但是我该怎么做才能让它在mongodb中只定义一次呢?我不确定您是否连接到了数据库,包括以下行mongoose.connect('path to your db');类似猫鼬的东西。连接mongodb://localhost/yourdbname');工作得很好!非常感谢你!非常感谢。这是有道理的。但是我该怎么做才能让它在mongodb中只定义一次呢?我不确定您是否连接到了数据库,包括以下行mongoose.connect('path to your db');类似猫鼬的东西。连接mongodb://localhost/yourdbname');工作得很好!非常感谢你!非常感谢。这是有道理的。但是我该怎么做才能让它在mongodb中只定义一次呢?我不确定您是否连接到了数据库,包括以下行mongoose.connect('path to your db');类似猫鼬的东西。连接mongodb://localhost/yourdbname');工作得很好!非常感谢你!非常感谢。这是有道理的。但是我该怎么做才能让它在mongodb中只定义一次呢?我不确定您是否连接到了数据库,包括以下行mongoose.connect('path to your db');类似猫鼬的东西。连接mongodb://localhost/yourdbname');工作得很好!非常感谢你!