Node.js 用于托管NodeJs应用程序的Nginx服务器

Node.js 用于托管NodeJs应用程序的Nginx服务器,node.js,nginx,deployment,Node.js,Nginx,Deployment,我是一个开发nodeJs应用程序的新手,已经使用browsify将其绑定到文件bundle.js中,并希望在Nginx中部署它。 我已经在index.html(如下所示)中引用了bundle.js,我不确定这样做是否正确。 nginx.conf文件是: server { listen 8056; root html/node_server; index index.html index.htm; server_name localhost; locati

我是一个开发nodeJs应用程序的新手,已经使用browsify将其绑定到文件bundle.js中,并希望在Nginx中部署它。 我已经在index.html(如下所示)中引用了bundle.js,我不确定这样做是否正确。 nginx.conf文件是:

server {

    listen 8056;
    root html/node_server;
    index index.html index.htm;
    server_name localhost;
    location / {
        try_files $uri $uri/ /index.html;
    }
    }
index.html文件和bundle.js文件放在htm\node_服务器文件夹中,我正在尝试访问端口8056。但显示错误:

未捕获的TypeError:无法读取bundle中未定义的属性“prototype”。js:78869

在浏览器控制台中,但Nginx错误日志中没有任何内容

bundle.js:78869是

`/**
 * Request prototype.
 * @public
 */

var req = Object.create(http.IncomingMessage.prototype)`
我的index.html文件是:

<!doctype html>
<html>

  <meta charset="utf-8">
  <title>DEV</title>
  <base href="/">

<body>

<script type="text/javascript" src="bundle.js"></script>
</html>
Bundle.js的详细信息:

`/**
 * Module dependencies.
 * @private
 */

var accepts = require('accepts');
var deprecate = require('depd')('express');
var isIP = require('net').isIP;
var typeis = require('type-is');
var http = require('http');
var fresh = require('fresh');
var parseRange = require('range-parser');
var parse = require('parseurl');
var proxyaddr = require('proxy-addr');

/**
 * Request prototype.
 * @public
 */

var req = Object.create(http.IncomingMessage.prototype) ---- Error here

/**
 * Module exports.
 * @public
 */

module.exports = req

/**
 * Return request header.
 *
 * The `Referrer` header field is special-cased,
 * both `Referrer` and `Referer` are interchangeable.
 *
 * Examples:
 *
 *     req.get('Content-Type');
 *     // => "text/plain"
 *
 *     req.get('content-type');
 *     // => "text/plain"
 *
 *     req.get('Something');
 *     // => undefined
 *
 * Aliased as `req.header()`.
 *
 * @param {String} name
 * @return {String}
 * @public
 */

req.get =
req.header = function header(name) {
  if (!name) {
    throw new TypeError('name argument is required to req.get');
  }

  if (typeof name !== 'string') {
    throw new TypeError('name must be a string to req.get');
  }

  var lc = name.toLowerCase();

  switch (lc) {
    case 'referer':
    case 'referrer':
      return this.headers.referrer
        || this.headers.referer;
    default:
      return this.headers[lc];
  }
};
`
我错过什么了吗?
如果需要更多详细信息,请发表评论。

我删除了以前的答案,因为我误解了您的问题

问题似乎是
http
库不适合被浏览。换句话说,在
bundle.js
文件中有一些JavaScript无法在web浏览器中运行

您能给
bundle.js
文件中失败的行提供一些上下文吗


此问题似乎与node.js/nginx设置无关。

在服务器本地启动node.js应用程序并将nginx配置为反向代理不是更好吗? 下面是如何执行此操作的详细教程:

你好,托马豪格,谢谢。请参阅我的nodeJs文件(编辑了这个问题)(实际上是angular 2应用程序的服务器端)。我想我在使用express时犯了严重的错误。那么我们必须使用http服务器而不是express吗?或者我可以使用express吗?您好,我已经在已编辑的答案中的bundle.js文件的失败行中添加了上下文。您好,Amal,很抱歉我的回复太晚了。似乎您正试图将node.js http库绑定到浏览器,但这是无法做到的。http库是服务器端库,在客户端(浏览器)中没有任何用途。绑定和优化js文件(通常)仅适用于客户端JavaScript,而不是服务器端JavaScript。因此,运行Node.js服务器不需要捆绑任何东西。这有意义吗?您好,您的意思是,我必须在系统中的express服务器上启动node.js应用程序,并将nginx用作反向服务器?
`/**
 * Module dependencies.
 * @private
 */

var accepts = require('accepts');
var deprecate = require('depd')('express');
var isIP = require('net').isIP;
var typeis = require('type-is');
var http = require('http');
var fresh = require('fresh');
var parseRange = require('range-parser');
var parse = require('parseurl');
var proxyaddr = require('proxy-addr');

/**
 * Request prototype.
 * @public
 */

var req = Object.create(http.IncomingMessage.prototype) ---- Error here

/**
 * Module exports.
 * @public
 */

module.exports = req

/**
 * Return request header.
 *
 * The `Referrer` header field is special-cased,
 * both `Referrer` and `Referer` are interchangeable.
 *
 * Examples:
 *
 *     req.get('Content-Type');
 *     // => "text/plain"
 *
 *     req.get('content-type');
 *     // => "text/plain"
 *
 *     req.get('Something');
 *     // => undefined
 *
 * Aliased as `req.header()`.
 *
 * @param {String} name
 * @return {String}
 * @public
 */

req.get =
req.header = function header(name) {
  if (!name) {
    throw new TypeError('name argument is required to req.get');
  }

  if (typeof name !== 'string') {
    throw new TypeError('name must be a string to req.get');
  }

  var lc = name.toLowerCase();

  switch (lc) {
    case 'referer':
    case 'referrer':
      return this.headers.referrer
        || this.headers.referer;
    default:
      return this.headers[lc];
  }
};
`