Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 部署到生产平均值应用程序(Angular2)_Node.js_Angular_Express_Nginx_Mean Stack - Fatal编程技术网

Node.js 部署到生产平均值应用程序(Angular2)

Node.js 部署到生产平均值应用程序(Angular2),node.js,angular,express,nginx,mean-stack,Node.js,Angular,Express,Nginx,Mean Stack,我正在尝试在我自己的服务器上部署我的第一个angular 2应用程序和mongodb/express(debian和nginx) 我已经安装了nginx、mongo、node、build essentials、pm2等所有软件 我正在通过pm2 start server.js-x--prod启动我的server.js 我的server.js文件 require('rootpath')(); var express = require('express'); var app = express()

我正在尝试在我自己的服务器上部署我的第一个angular 2应用程序和mongodb/express(debian和nginx)

我已经安装了nginx、mongo、node、build essentials、pm2等所有软件

我正在通过pm2 start server.js-x--prod启动我的server.js

我的server.js文件

require('rootpath')();
var express = require('express');
var app = express();
var cors = require('cors');
var bodyParser = require('body-parser');
var expressJwt = require('express-jwt');
var config = require('config.json');

app.use(cors());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

// use JWT auth to secure the api
app.use(expressJwt({ secret: config.secret }).unless({ path: ['/users/authenticate', '/users/register'] }));

// routes
app.use('/users', require('./controllers/users.controller'));

// start server
app.listen(3008, function() {
    console.log('server na porcie 3008!')
});
这是我的config.json

{
    "connectionString": "mongodb://localhost:27017/mydb",
    "apiUrl": "http://127.0.0.1:3008",
    "secret": "testing testing"
}
我的前端是angular2/4,我还使用ng build--prod创建我的dist目录。我到服务器上dist的路径是/srv/mydomain/dist

我的服务器部分在/srv/mydomain/server中

当我打开我的应用程序时,我会看到我的前端登录

键入登录和密码后,控制台显示错误

选项网络::错误连接被拒绝 XHR加载失败:POST“”

我不知道为什么是4000而不是3008

这是我的nginx配置

server {
    listen 80;

    # Web
    root /srv/myapp/dist;
    location / {
        try_files $uri /index.html;
    }

    # Api
    location /srv/myapp/server {
        proxy_pass http://127.0.0.1:3008;
    }
}
我做错了什么

编辑

这是我的authentication.service.ts

import { Injectable } from '@angular/core';
import { Http, Headers, Response } from '@angular/http';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';

import { AppConfig } from '../app.config';

@Injectable()
export class AuthenticationService {
    constructor(private http: Http, private config: AppConfig) { }

    login(username: string, password: string) {
        //console.log(this.config.apiUrl);
        return this.http.post(this.config.apiUrl + '/users/authenticate', { username: username, password: password })
            .map((response: Response) => {
                // login successful if there's a jwt token in the response
                let user = response.json();
                if (user && user.token) {
                    // store user details and jwt token in local storage to keep user logged in between page refreshes
                    localStorage.setItem('currentUser', JSON.stringify(user));
                }
            });
    }

    logout() {
        // remove user from local storage to log user out
        localStorage.removeItem('currentUser');
    }
}

您能显示您发出此身份验证请求的代码吗?@echonax在我的问题末尾添加。您能在apiUrl中记录console.log吗?我会用评论编辑你的问题。我的编辑打印的是什么?@echonax我正在检查给我一点时间,我必须构建它