Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.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 Sockjs节点Heroku错误连接被拒绝_Node.js_Heroku_Webpack - Fatal编程技术网

Node.js Sockjs节点Heroku错误连接被拒绝

Node.js Sockjs节点Heroku错误连接被拒绝,node.js,heroku,webpack,Node.js,Heroku,Webpack,一般来说,我不熟悉webpack和NodeJS。我有一个本地的网络应用程序,运行良好。当我将其部署到Heroku时,会出现以下错误: 获取http://{example.com}:28203/sockjs node/info?t=1501331942755 net::ERR_CONNECTION_拒绝 这是我为Heroku编写的webpack.config.js: const path = require('path'); const CopyWebpackPlugin = require('c

一般来说,我不熟悉
webpack
NodeJS
。我有一个本地的网络应用程序,运行良好。当我将其部署到Heroku时,会出现以下错误:

获取http://{example.com}:28203/sockjs node/info?t=1501331942755 net::ERR_CONNECTION_拒绝

这是我为Heroku编写的
webpack.config.js

const path = require('path');
const CopyWebpackPlugin = require('copy-webpack-plugin');

module.exports = {
  entry: './app/javascripts/app.js',
  output: {
    path: path.resolve(__dirname, 'build'),
    filename: 'app.js'
  },
  plugins: [
    // Copy our app's index.html to the build folder.
    new CopyWebpackPlugin([
      { from: './app/index.html', to: "index.html" }
    ])
  ],
  module: {
    rules: [
      {
       test: /\.css$/,
       use: [ 'style-loader', 'css-loader' ]
      }
    ],
    loaders: [
      { test: /\.json$/, use: 'json-loader' },
      {
        test: /\.js$/,
        exclude: /(node_modules|bower_components)/,
        loader: 'babel-loader',
        query: {
          presets: ['es2015'],
          plugins: ['transform-runtime']
        }
      }
    ]
  },
  devServer: {
    port: process.env.PORT || 8080,
    host: '0.0.0.0',
    disableHostCheck: true
  },
}
有什么建议吗?谢谢

编辑:我正在添加条目文件
app.js
删除不必要的部分,主要关注应用程序准备就绪时应该执行的操作:

// Import libraries
import { default as Web3} from 'web3';
import { templates } from '../javascripts/templates.js';
import { default as contract } from 'truffle-contract'

//...

$( document ).ready(function() {
  if (typeof web3 !== 'undefined') {
    console.warn("Using web3 detected from external source like Metamask")
    // Use Mist/MetaMask's provider
    window.web3 = new Web3(web3.currentProvider);
  } else {
    // fallback - use your fallback strategy (local node / hosted node + in-dapp id mgmt / fail)
    window.web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
  }

  account = web3.eth.accounts[parseInt(prompt("Select an Ethereum address..."))];//web3.eth.accounts[1];
  ForwardPayment.setProvider(web3.currentProvider);
  MatchPay.setProvider(web3.currentProvider);


  let filter = web3.eth.filter({fromBlock: 0, address: master_address, topics: [web3.sha3("Created(address,address,address)"), topicize(account), null, null]});
  filter.get(function(error, result) {
     reconstruct(result);
  });

  let in_filter = web3.eth.filter({fromBlock: 0, address: master_address, topics: [web3.sha3("Created(address,address,address)"), null, topicize(account), null]});
  in_filter.get(function(error, result) {
     in_reconstruct(result);
  });

  // look for newly created contracts
  let new_in_filter = web3.eth.filter({address: master_address, topics: [web3.sha3("Created(address,address,address)"), null, topicize(account), null]});
  new_in_filter.watch(function(error, receipt) {
    let contr_address = "0x" + receipt['topics'][3].substring(26);
    in_handler(contr_address, "0x" + receipt.topics[1].substring(26));
  });

});

我使用自己的域和https来开发。这些是我的配置。 ,它起作用了

//nginx配置
服务器{
听80;
听443ssl;
#服务器名称;
#ssl\U证书
#ssl\u证书\u密钥
ssl_会话_缓存共享:ssl:1m;
ssl_会话_超时;
ssl_密码高:!aNULL:!MD5;
ssl首选服务器上的密码;
地点/{
代理设置头主机$Host;
代理集头X-Real-IP$remote\u addr;
代理通行证http://127.0.0.1:3000;
}
位置/sockjs节点/{
代理通行证http://127.0.0.1:3000;
proxy_http_版本1.1;
代理设置头升级$http\U升级;
代理集头连接“升级”;
代理设置头主机$Host;
代理缓存绕过$http\u升级;
}
地点/空气污染指数{
代理通行证http://127.0.0.1:8080;
}
}
//我的网页版本
“网页包开发服务器”:“2.11.2”,
“网页包”:“3.12.0”
//webpack.config.dev.js
const path=require('path');
const webpack=require('webpack');
const HtmlWebpackPlugin=require('html-webpack-plugin');
const buildConfig=require('./package.json');
const buildName=buildConfig.name;
const buildVersion=buildConfig.version;
module.exports={
devtool:“eval”,
条目:{
应用程序:[
“反应热加载程序/修补程序”,
'网页包开发服务器/客户端?https://0.0.0.0',
'webpack/hot/only dev server',//仅重新加载dev服务器
'index.js'
]
},
输出:{
path:path.resolve(uu dirname,“/static”),
publicPath:“/static”,
长度:5,
文件名:`myapp-${buildVersion}-[name].min.js`
},
模块:{
规则:[{
测试:/\.jsx?$/,,
排除:/node_模块/,
加载器:“巴别塔加载器”
},
{
测试:/\.css$/,,
加载器:“样式加载器!css加载器”
},
{
测试:/\(jpg | png | svg)$/,
加载器:“url加载器?限制=500000”
},
{
测试:/\(ttf | eot | woff | woff2 | svg)$/,
加载器:“url加载器?限制为50000”
},
{
测试:/\.scss$/,,
加载器:“样式!css!sass”
},
{
测试:/\.wasm$/,,
装载机:['wasm-loader']
}
]
},
决心:{
扩展:['.js','.jsx']
},
上下文:_dirname,
目标:“网络”,
开发服务器:{
//contentBase:'/静态',
//是的,
主持人:“0.0.0.0”,
港口:3000,
disableHostCheck:true,
hot:true,//激活热加载
标题:{
“访问控制允许来源”:“*”,
“访问控制允许标头”:“来源,X请求,内容类型,接受”
},
监视选项:{
聚合超时:300,
投票:1000
}
},
插件:[
新的webpack.DefinePlugin({
'process.env.NODE_env':JSON.stringify('development')
})
],
};
//server.js
const webpack=require('webpack');
const WebpackDevServer=require('webpack-dev-server');
const webpackConfig=require('./webpack.config.dev');
函数runFunc(err){
如果(错误){
控制台日志(err);
}
log('在本地主机上侦听:3000');
}
新的WebpackDevServer(webpack(webpackConfig){
publicPath:“/static”,
热:是的,
主持人:“0.0.0.0”,
disableHostCheck:true,
历史上的倒退:是的,
代理:[{
路径:'/api',
目标:'http://127.0.0.1:8080/'
}]

}).听(3000,'0.0.0',runFunc)
你会显示你的条目
app.js
文件吗?我已经添加了它作为一个编辑器,请不要在这样的代码中使用代码片段。请改用区块码格式。谢谢您的回答。很高兴看到它工作。我特别感兴趣的是为什么它对Heroku不起作用。