【发布时间】:2017-10-25 14:16:51
【问题描述】:
我在 Ionic 2 和 Angular2 上开发了一个应用程序,其中 MongoDB 作为数据库,Node.js 和 Express.js 作为服务器。我在笔记本电脑上创建了数据库mongoose.connect('mongodb://localhost:27017/db')。
现在,我已经启动了一个 AWS EC2 Linux 实例并安装了 node 和 npm 包。
通过在mongod.conf 文件中注释bindip 成功地在EC2 Linux 实例中使用git repo 克隆了我的应用程序并安装了mongodb 服务器并连接到我笔记本电脑的mongoDB 的shell。
现在,当我在 EC2 实例中运行 node server.js 时,会读取 server.js 文件中 app.listen(8080) 下方的 console.log(App listining to port 8080')。之后什么都没有发生。
- 如何将服务器 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')
【问题讨论】:
-
您希望您的 EC2 实例连接到笔记本电脑上运行的 mongodb,还是想知道如何将您的 mongodb 数据库复制到 EC2?
-
如何将我的mongodb数据库复制到EC2...将EC2实例连接到mongodb我已经完成了。但是我的笔记本电脑的数据库不同,EC2数据库不同。
-
您可以使用 Mongo chef 之类的软件来完成,也可以将所有数据导出到一个文件夹中,然后将其上传到 EC2 并在那里导入这些文件。
标签: node.js linux mongodb amazon-web-services amazon-ec2