2017-05-25 85 views
1

我已经开发了一个应用程序在Ionic 2和Angular2与MongoDB作为数据库和Node.js和Express.js作为服务器。我在笔记本电脑上创建了数据库mongoose.connect('mongodb://localhost:27017/db')如何在amazon EC2 Linux实例上托管我的应用程序(MEAN)?

现在,我启动了一个AWS EC2 Linux实例并安装了节点和npm软件包。

通过在mongod.conf文件中评论bindip,在EC2 Linux实例中成功克隆了我的应用程序,并安装了mongodb服务器并连接到我的笔记本电脑的mongoDB的外壳。

现在,当我在EC2实例中运行的node server.js是读取console.log(App listining to port 8080')这是目前仅低于app.listen(8080)server.js文件。之后没有任何事情发生。

  1. 我如何能在服务器的MongoDB连接到我已经在我的笔记本电脑创建与应用为localhost数据库,即mongoose.connect('mongodb://localhost:27017/db')

仅供参考,我附上我的server.js文件

server.js

var express = require("express"); 
var app = express(); 
var mongoose = require('mongoose'); 
var morgan = require('morgan'); 
var bodyParser = require('body-parser'); 
var cors = require('cors'); 
var methodOverride = require('method-override'); 

mongoose.connect('mongodb://localhost/reviewking'); 

app.use(morgan('dev'));           // log every request to the console 
app.use(bodyParser.urlencoded({ 'extended': 'true' }));   // parse application/x-www-form-urlencoded 
app.use(bodyParser.json());          // parse application/json 
app.use(bodyParser.json({ type: 'application/vnd.api+json' })); // parse application/vnd.api+json as json 
app.use(methodOverride()); 
app.use(cors()); 

app.use(function (req, res, next) { 
    res.header("Access-Control-Allow-Origin", "*"); 
    res.header("Access-control-Allow-Method", "DELETE,PUT"); 
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); 
    next(); 
}); 

//Models 

var Review = mongoose.model('Review', { 
    title: String, 
    description: String, 
    rating: Number 

}); 

//Routes 

app.get('/api/reviews', function (req, res) { 
    console.log('fetching reviews..'); 

    Review.find(function (err, reviews) { 
     if (err) 
      res.send(err); 

     res.json(reviews); 
    }); 

}); 

app.post('/api/reviews',function(req,res){ 
    console.log('creating reviews'); 

    //create a review 

    Review.create({ 
     title: req.body.title, 
     description:req.body.description, 
     rating:req.body.rating, 
     done:false 
    }, function(err, reviews){ 
     if(err) 
     res.send(err); 

     Review.find(function(err,reviews){ 
      if(err) 
      res.send(err); 
      res.json(reviews); 
     });  
    }); 
}); 

app.listen(8080); 
console.log('app listening on port 8080') 
+0

您是否希望EC2实例连接到笔记本上运行的mongodb,或者您想知道如何将您的mongodb数据库复制到EC2? –

+0

如何将我的mongodb数据库复制到EC2 ...将EC2实例连接到mongodb我已经完成了。但是我的笔记本电脑的数据库不同,EC2 db不同。 – Aditya

+0

您既可以使用Mongo Chef等软件来做到这一点,也可以导出一个文件夹中的所有数据,然后将其上传到EC2上并导入那些文件。 –

回答

0

也许最简单的方法是运行mongodump,上传转储到您的服务器(可能使用scp)并使用mongorestore恢复。

# Backup the reviewking database (on your laptop) 
mongodump --db reviewking 

# Restore the reviewking database (on your server) 
mongorestore --db reviewking dump/reviewking 
相关问题