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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.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
Mongodb heroku节点应用程序尝试使用monk访问mlab db加载项时的状态503_Mongodb_Express_Heroku_Mlab_Monk - Fatal编程技术网

Mongodb heroku节点应用程序尝试使用monk访问mlab db加载项时的状态503

Mongodb heroku节点应用程序尝试使用monk访问mlab db加载项时的状态503,mongodb,express,heroku,mlab,monk,Mongodb,Express,Heroku,Mlab,Monk,我正在尝试在heroku上部署我的express mongodb应用程序。我已经尝试在本地访问heroky mlab插件,本地服务器工作正常。但当我在heroku上启动同一台服务器时,由于缺少数据库,服务器似乎无法解决请求。我想知道问题是否出在monk js或其他方面 const express=require('express'); const bodyParser=require('body-parser'); const monk=需要(“monk”); 常量引擎=需要(“合并”);

我正在尝试在heroku上部署我的express mongodb应用程序。我已经尝试在本地访问heroky mlab插件,本地服务器工作正常。但当我在heroku上启动同一台服务器时,由于缺少数据库,服务器似乎无法解决请求。我想知道问题是否出在monk js或其他方面



const express=require('express');
const bodyParser=require('body-parser');
const monk=需要(“monk”);
常量引擎=需要(“合并”);
常量app=express();
const router=require(“./路由/路由器”);
use(bodyParser.urlencoded({extended:false}));
app.use(express.static(`${uu dirname}/public`);
app.set('views',`${uu dirname}/templates`);
app.engine('html',engines.mustache);
app.set('view engine','html');
常数db=1mongodb://.mlab.com:15338/heroku_1xx37v0b');
db.then(()=>{
console.log(“连接成功”);
}).catch((e)=>{
console.error(“error!”,e);
});
使用((req,res,next)=>{req.db=db;next();});
应用程序使用(“/”,路由器);
app.listen(process.env.PORT | | 3000);
//向db询问一些事情
const collection=db.get('doctenti');
collection.findOne({type:“doctotunteti”})。然后((doc)=>{console.log(doc);})

您是否设置了port env变量?(我知道这与mongo无关,但可能会有所帮助)实际上没有。。。我以为这样很难,我该怎么设置呢?我使用的是express js应用程序结构,它与www文件夹有关吗?我想我错了。我读这篇文章的时候可能是醉醺醺的。因此,无论如何,端口en var是根据定义设置的。但是部署up需要做几件事。在package.json文件中指定节点版本,并添加一个启动脚本。我刚和heroku的支持人员聊完。看起来这个问题是因为monk本身造成的。也许我应该搬到猫鼬去。


<!-- language: lang-javascript-->

const express = require('express');
    const bodyParser = require('body-parser');
    const monk = require('monk');
    const engines = require('consolidate');

    const app = express();

    const router = require('./routes/router');


    app.use(bodyParser.urlencoded({ extended: false }));

    app.use(express.static(`${__dirname}/public`));
    app.set('views', `${__dirname}/templates`);
    app.engine('html', engines.mustache);
    app.set('view engine', 'html');

    const db = monk('mongodb://<xxxx>.mlab.com:15338/heroku_1xx37v0b');
    db.then(() =>{
      console.log("connection success");
    }).catch((e)=>{
      console.error("Error !",e);
    });
    app.use((req, res, next) => { req.db = db; next(); });

    app.use('/', router);

    app.listen(process.env.PORT || 3000);


    // ask something to the db
    const collection = db.get('docUtenti');
    collection.findOne({type: "docTotUtenti" }).then((doc) => {console.log(doc);})