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