我有一个运行Bitnami MEAN STACK的EC2实例。我想要做的是设置mongo和Node,以便调用我的API的端点。我写了app.js
文件,我已经实现了一个连接到mongo的API。
我现在的疑问是:如何连接到mongo?当我在EC2实例中运行时,我应该将mongo主机与localhost一起离开吗? mongoose.connect('mongodb://localhost/mydb');
访问我的终端的URL是什么?在我的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 :(得分:0)
如何连接到mongo?我应该使用localhost离开mongo主机吗? 因为我在EC2实例中运行它? mongoose.connect( '的mongodb://本地主机/ MYDB');
是,如果localhost位于同一台服务器上,则为localhost。
访问我的端点的URL是什么?在我的EC2实例中,我已经运行了 节点app.js所以现在它正在运行...这是我可以进入的URL 任何浏览器,并且确实喜欢`... / api / users'?
进入EC2控制台并查找实例的公共IP地址。您的网址将类似于TextField
。您必须打开安全组中的端口,可能还要打开EC2服务器上的防火墙(iptables)。