NodeJS在Localhost上工作但不在线工作

时间:2017-10-26 16:32:00

标签: mysql node.js ejs

我正在练习NodeJS并试图通过FTP上传登陆页面,但它不能在线工作。有谁知道我们是否需要做一个特殊的配置来将网站上传到网上?

在我的本地主机中它完美运行。当它上线时会出现问题。

它只是显示:

Index of /landing

[ICO]   Name    Last modified   Size    Description

如果我导航到路径EX:'website.com/views/index.ejs',文件就在那里,但没有样式或脚本。

我在视图下的ejs文件中调用它:

<!-- Bootstrap core CSS -->
    <link href="/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet">
    <link href="https://fonts.googleapis.com/css?family=Kanit" rel="stylesheet"> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
    <!-- Custom styles for this template -->
    <link href="/style.css" rel="stylesheet">
    <script src="/server.js"></script>

我确定我错过了一些东西但却找不到。

这是我在server.js上的代码:

var express = require('express');
var path = require('path')
var bodyParser = require('body-parser');
var app = express();
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs'); //extension of views
app.use(bodyParser.urlencoded({ extended: false }));
app.use(express.static(__dirname + '/css'));
app.use(express.static(__dirname + '/js'));
app.use(express.static(__dirname + '/node_modules'));
app.use(express.static(__dirname + '/img'));


//mysql 
var mysql = require('mysql');
var pool = mysql.createPool({
    connectionLimit : 100, //focus it
    host : 'mydb',
    user : 'mydb',
    password : 'mydb',
    database : 'mydb'


});

//opening view

app.get('/', function(req,res){
    res.render('index');
});

//insert data 
app.post('/insert', function(req,res){

   pool.getConnection(function(error,conn){

       var queryString = "insert into leads(email,name) values('"+req.body.femail+"','"+req.body.fname+"')";

       conn.query(queryString,function(error,results){
           if(error)
               {
                   throw error;
               }
           else 
               {
                 res.send('Inserted Successfully!')
               }

       });
       conn.release();
   });


});


//start server

var server = app.listen(8000, function () {

  var host = server.address().address
  var port = server.address().port

  console.log("Example app listening at http://%s:%s", host, port);

});

如果有人可以提供帮助,我将不胜感激。

2 个答案:

答案 0 :(得分:0)

我很确定您的节点应用程序没有运行,您需要一台能够运行nodejs应用程序的服务器,不确定ftp是否可以正常运行,但我通常使用VPS。一旦你拿到服务器:

  1. 安装git
  2. 安装节点
  3. 拉你的代码

    git pull http://github.com/someone/someproject.git

  4. 输入您的项目文件夹

    $ cd someproject

  5. 运行此节点命令

    $ node index.js

  6. 访问服务器(您可以使用ip ex:http://203.120.100.113:8000

  7. ???
  8. 利润

    节点index.js ???利润

答案 1 :(得分:0)

首先将您的端口更改为22,因为它是用于发出ftp请求的默认端口。接下来,您必须将路由器上的端口转发到运行服务器的计算机上。它只是告诉您的路由器端口22上的请求应该到达本地网络上的特定计算机。您可以轻松地在路由器上执行此操作。您可以使用您的公共IP地址访问您的ftp服务器,您可以谷歌搜索您的公共IP地址,然后像这样使用它, ftp://xx.xx.xx.xx其中xx.xx.xx.xx是您的公共IP地址。