Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.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
Node.js+;猫鼬在本地工作,但不在Heroku上工作_Node.js_Mongodb_Heroku_Mongoose - Fatal编程技术网

Node.js+;猫鼬在本地工作,但不在Heroku上工作

Node.js+;猫鼬在本地工作,但不在Heroku上工作,node.js,mongodb,heroku,mongoose,Node.js,Mongodb,Heroku,Mongoose,这是我在Heroku上运行的node.js文件。它在本地工作得非常好,但当我将其推送到Heroku时,数据库集合不会被创建,也不会抛出错误。最终,我只是想让它在Heroku上运行时真正创建连接。谢谢 var mongoose = require('mongoose'), db_url = process.env.MONGOHQ_URL || "mongodb://john:<mypasswordwashere>@staff.mongohq.com:10053/app33055

这是我在Heroku上运行的node.js文件。它在本地工作得非常好,但当我将其推送到Heroku时,数据库集合不会被创建,也不会抛出错误。最终,我只是想让它在Heroku上运行时真正创建连接。谢谢

var mongoose = require('mongoose'),
    db_url = process.env.MONGOHQ_URL || "mongodb://john:<mypasswordwashere>@staff.mongohq.com:10053/app3305538",
    db = mongoose.connect(db_url),
    Schema = mongoose.Schema;

//Mongoose DB Test
var MsgSchema = new Schema({
    date: {type: Date, default: Date.now},
    message: String
});
var MsgModel = db.model("messages", MsgSchema);
var Msg = new MsgModel();
Msg.message = "blurgh";
Msg.save();
var mongoose=require('mongoose'),
db_url=process.env.MONGOHQ|u url |”mongodb://john:@staff.mongohq.com:10053/app3305538“,
db=mongoose.connect(db_url),
Schema=mongoose.Schema;
//猫鼬DB试验
var MsgSchema=新模式({
日期:{type:date,默认值:date.now},
消息:String
});
var MsgModel=db.model(“消息”,MsgSchema);
var Msg=new MsgModel();
Msg.message=“模糊”;
Msg.save();
.save()
的调用采用回调函数。尝试在其中添加调试消息,并查看是否显示有关其失败原因的任何信息,如下所示:

Msg.save(function(err){
  if(err){ 
    console.log("Error:", err);
  }else{
    console.log("success");
  }
})

然后您应该能够在heroku日志中看到结果。

您是否在heroku中指定了节点版本

请参考这个。(我也混淆了同样的问题,但解决了。)

另一个可能引起混淆的原因是,如果您同时采购MongoLab和MongoHQ,则Heroku中提供的默认连接字符串将中断您的DB会话:

var mongoUri = process.env.MONGOLAB_URI || process.env.MONGOHQ_URL || 'mongodb://localhost/mydb';

i、 e:如果您只在安装了这两个组件的情况下使用MongoHQ,那么应该扔掉
进程。env.mongorab_URI

我添加了控制台消息,但Heroku日志中没有调用它们。添加调试消息以确定脚本挂在哪一行代码上。很可能是mongoose.connect,它可能与MONGOHQ_URL有关。尝试在本地设置环境变量,并在本地使用mongoose连接到mongohq实例,而不是从heroku连接到mongohq实例。您能否仔细检查并发布heroku应用程序正在使用哪个版本的nodejs(以及mongodb驱动程序版本)?