Я загрузил проект стека MEAN для экземпляра aws, созданного Bitnami, и установил angular dist на htdocs, где по умолчанию был index.html.Он работает, когда я запускаю сервер с узла index.js и он связан с mongodb, но когда я пытаюсь выполнить любой запрос, например, войти / зарегистрироваться, я получаю статус 500.
Я попытался дать все разрешения всемфайлы и настроенный .htaccess так:
RewriteEngine On
# If an existing asset or directory is requested go to it as it is
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
RewriteRule ^ - [L]
Options +ExecCGI
AddHandler cgi-script .cgi .py .php .pl .js
# If the requested resource doesn't exist, use index.html
RewriteRule ^ /index.html
Ошибка, которую я получаю на консоли, заключается в том, что
Object {headers: {…}, status: 0, statusText: "Unknown Error", url: "http://socializeweb.es:3000/api/login", ok: false, имя:" HttpErrorResponse ", сообщение:" Http error response для http://socializeweb.es:3000/api/login: 0 Неизвестная ошибка ", ошибка: ошибка
Index.jsкод
// Requires and const definition
const express = require('express');
const app = express();
const bodyParser = require('body-parser');
const cors = require('cors');
const mongoose = require('mongoose');
const mongoURI = "mongodb+srv://***:***@socialize-vgoeq.mongodb.net/test?retryWrites=true&w=majority";
const http = require('http');
const normalizePort = require('normalize-port');
const locationPicker = require("location-picker")
// Configuración CORS
app.use((req, res, next) => {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Credentials', true);
res.header('Access-Control-Allow-Headers', 'Authorization, X-API-KEY, Origin, X-Requested-With, Content-Type, Accept, Access-Control-Allow-Request-Method');
res.header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, DELETE');
res.header('Allow', 'GET, POST, OPTIONS, PUT, DELETE');
next();
});
// Middlewares
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: false
}));
const port = normalizePort(process.env.PORT || '3000');
app.set('port', port);
// Routes
const user_routes = require('./routes/user.routes');
const follow_routes = require('./routes/follow.routes');
const group_routes = require('./routes/groups.routes');
const publication_routes = require('./routes/publication.route');
const group_follows_routes = require('./routes/groupFollows.routes');
const messages = require('./routes/messages.route');
app.use('/api', user_routes);
app.use('/api', follow_routes);
app.use('/api', group_routes);
app.use('/api', publication_routes);
app.use('/api', group_follows_routes);
app.use('/api', messages);
var server = http.createServer(app);
var io = require('socket.io').listen(server);
io.on('connection', (socket) => {
socket.on('join', function (data) {
//joining
if (data.room) {
socket.leave(socket.room);
socket.broadcast.to(data.room).emit('left room', {
user: data.user,
message: 'ha abandonado la sala.'
});
}
socket.join(data.room);
console.log(data.user + 'joined the room : ' + data.room);
socket.broadcast.to(data.room).emit('new user joined', {
user: data.user,
message: 'ha entrado en la sala.'
});
});
socket.on('message', function (data) {
io.in(data.room).emit('new message', {
user: data.user,
message: data.message
});
})
});
// Database
mongoose.Promise = global.Promise;
mongoose.set('useFindAndModify', false);
mongoose.connect(mongoURI, {
useNewUrlParser: true
})
.then(() => {
console.log("BD conectada");
console.log("Node running on " + port)
// Creación del servidor
server.listen(port);
})
.catch(err => console.log(err));
Соединение между передней и задней панелями осуществляется с помощью подобных сервисов
@Injectable()
export class UserService {
public url: string;
public identity;
public token;
stats: any;
constructor(public _http: HttpClient) {
this.url = "http://" + window.location.hostname + ":3000/api/";
}
signin(user: User, gettoken = null): Observable<any> {
if (gettoken != null) {
user.gettoken = gettoken;
}
let params = JSON.stringify(user);
let headers = new HttpHeaders().set('Content-Type', 'application/json');
}