服务器nodejs没有反应时如何处理?

时间:2019-04-01 04:34:11

标签: node.js ajax

我是初学者node.js 当我已经检查服务器打开但 当我尝试打开index.html时没有任何反应 我使目录只是什么也没有反应为什么会发生这种情况? DBtestApp> ajax_test> www> index.html 我将我的nodejs设置保存在DBtestApp中 但是当我访问端口3000 告诉我 欢迎来到Express' 我该如何检查我的index.html

我访问http://localhost:3000/时已经检查服务器是否打开 该页面向我显示“表示欢迎表达”,但我不明白为什么index.html无法打开

这是我的index.html

    <!DOCTYPE html>

    <html lang="en">
    <head>
        <meta charset="utf8">
        <title>Document</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
        <script>



     $(document).ready(function(){

            $('#ButtonRequest').click(function(){

                $.ajax({
                    url: 'http://localhost:3000/Echo',
                    data:{
                        myData: "Hello",
                    },
                    dataType: 'jsonp',
                    success: function(data){
                        console.log(data);
                        $('.Response').text('answer from server  : '+data.result);
                    },
                    error: function(){
                        $('.Response').text('error occured');
                    }
                });

            });

        });
    </script>
</head>
<body>
    <div class="Response"></div>
    <input type="button" id="ButtonRequest" value="AJAX start" />

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</body>
</html>

这是我设置的nodejs ajax_srv_test.js

var express = require('express'); 
var app = express();
var bodyParser = require('body-parser'); 
var path = require('path');

// Path setting 
app.use(express.static(path.join(__dirname, 'ajax_test', 'www')));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));

// service main page return 
app.get('/', function(req, res){
    res.sendFile(path.join(__dirname, 'ajax_test', 'www', 'index.html'));
});

// Echo service
app.get('/Echo', function(req, res){
    var callbackName = req.query.callback;
    var myData = req.query.myData;
    var ResObj = {};
    ResObj.result = myData;
    var server = app.listen(3000, function(){
        console.log("Express server has started on port 3000");
    });
    res.header('Content-type','application/json');
    res.header('Charset','utf8');
    res.send(callbackName + '('+JSON.stringify(ResObj)+');');

});

当我在终端

中写信时
node ajax_srv_test

没有反应

1 个答案:

答案 0 :(得分:1)

用于启动服务器的代码位于/Echo路由之内,这就是从未执行它的原因,导致未启动HTTP服务器。请将/Echo路由的代码更改为以下内容:


// Echo service
app.get('/Echo', function(req, res){
    var callbackName = req.query.callback;
    var myData = req.query.myData;
    var ResObj = {};
    ResObj.result = myData;    
    res.header('Content-type','application/json');
    res.header('Charset','utf8');
    res.send(callbackName + '('+JSON.stringify(ResObj)+');');

});

var server = app.listen(3000, function(){
    console.log("Express server has started on port 3000");
});