【发布时间】:2014-09-29 17:20:27
【问题描述】:
我正在尝试连接到本地服务器上的 js 文件。我希望能够输入外部 IP 地址和端口并让它在外部运行应用程序。目前可以在本地执行此操作。这是我的 server.js 文件代码:
var express = require('express');
var app = express();
var mysql = require('mysql');
var connectionpool = mysql.createPool({
host : '127.0.0.1',
user : 'root',
password : '',
database : 'development',
port: 3306,
connectionLimit: 50
});
var UAParser = require('ua-parser-js');
var bodyParser = require('body-parser');
// set the static files location /public/img will be /img for users
app.use(express.static(__dirname + '/public'));
app.use(express.logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
})); // pull information from html in POST
require('./config/signup.js')(app, express, connectionpool, UAParser);
//Setup for external access
var http = require('http');
http.createServer(function(req, res){
//res.writeHead(200, {'content-type': 'text/plain'});
//res.end('It works');
}).listen(8080);
// Start app on port 8080
/*app.listen(8080);
console.log('Rest Demo Listening on port 8080');*/
目前我可以从外部连接到服务器,但最终会进入默认主页,该主页只是一小段文字。我希望能够输入外部 IP 地址和端口并让它立即开始运行我的应用程序,而无需浏览目录。如果这有任何帮助,我也在运行 apache。
固定: 这行代码代替了 http.createServer 函数使其工作
var server = http.createServer(app).listen(8080);
【问题讨论】:
-
您是使用 8080 端口直接访问应用程序,还是使用 Apache 通过 mod_proxy 代理它?
-
听起来你是在打 apache 而不是 node。杀死 apache 并将 8080 更改为 80。您可能必须获得超级用户权限才能侦听该端口。
-
连接apache(80/8080端口)或mysql(3306)不起作用?
-
Killed apache 但是当我尝试监听端口 80 时出现错误:监听 EACCES。如何获得超级用户权限来监听该端口?
标签: javascript node.js apache nodemon