2016-05-02 3 views
-1

У меня есть экземпляр EC2, работающий с Bitnami MEAN STACK. То, что я хочу сделать, - установить mongo и Node, чтобы вызвать конечные точки моего API. Я написал файл app.js, где я реализовал API, который подключается к mongo.Конечные точки доступа API EC2 + Node + ExpressJS

  • Мое сомнение сейчас: как подключиться к монго? должен ли я оставить хост mongo с localhost, поскольку я запускаю его внутри экземпляра EC2? mongoose.connect('mongodb://localhost/mydb');

  • Каков адрес для доступа к моим конечным точкам? В моем экземпляре EC2 я запустил node app.js, так что теперь он работает ... Какой URL-адрес я могу использовать в любом браузере и делать как «.../api/users»?

api.js

var express = require('express'); 
var app = express(); 
var mongoose = require('mongoose');      
var bodyParser = require('body-parser');  
var methodOverride = require('method-override'); 
var bcrypt = require('bcrypt'), 
    SALT_WORK_FACTOR = 10; 

var Schema = mongoose.Schema, 
    ObjectId = Schema.ObjectId; 

app.use(express.static(__dirname)); 
app.use(bodyParser.urlencoded({'extended':'true'}));    
app.use(bodyParser.json());          
app.use(bodyParser.json({ type: 'application/vnd.api+json' })); 
app.use(methodOverride()); 

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

app.get('/', function(req, res){ 
    res.redirect('/index.html'); 
}); 

app.all("/api/*", function(req, res, next) { 
    res.header("Access-Control-Allow-Origin", "*"); 
    res.header("Access-Control-Allow-Headers", "Cache-Control, Pragma, Origin, Authorization, Content-Type, X-Requested-With"); 
    res.header("Access-Control-Allow-Methods", "GET, PUT, POST"); 
    return next(); 
}); 

app.all("/api/*", function(req, res, next) { 
    if (req.method.toLowerCase() !== "options") { 
    return next(); 
    } 
    return res.send(204); 
}); 

// define model ================= 
var UserSchema = new Schema({ 
    email: { type: String, required: true, index: { unique: true } }, 
    password: { type: String, required: true }, 
}); 

var User = mongoose.model('User', UserSchema); 

// api --------------------------------------------------------------------- 
// get all todos 

/* USERS API */ 
app.get('/api/users', function(req, res) { 

    // use mongoose to get all todos in the database 
    User.find(function(err, users) { 

     // if there is an error retrieving, send the error. nothing after res.send(err) will execute 
     if (err) 
      res.send(err) 

     res.json(users); // return all todos in JSON format 
    }); 
}); 

app.listen(process.env.PORT || 5000) 

ответ

0

, как подключиться к Монго? должен ли я оставить хост mongo с localhost , поскольку я запускаю его внутри экземпляра EC2? mongoose.connect ('mongodb: // localhost/mydb');

Да, localhost, если он находится на одном сервере.

Каков адрес для доступа к моим конечным точкам? В моем экземпляре EC2 я запустил узел app.js, так что теперь он работает ... Какой URL-адрес я могу найти в в любом браузере и делать «.../api/users»?

Зайдите в консоль EC2 и найдите общедоступный IP-адрес своего экземпляра. Ваш URL-адрес будет примерно http://PUBLIC_IP_ADDRESS/api/users. Вам нужно будет открыть порт в группе безопасности и, возможно, брандмауэр (iptables) на сервере EC2.

+0

@ Rüménok Я не понимаю, что вы говорите. Я не вижу, как этот комментарий связан с вашим вопросом или моим ответом. –

Смежные вопросы