node.js - 页面继续加载 - 没有要调查的错误

时间:2016-01-17 12:40:08

标签: node.js

这是1.js
让我们运行它

node 1.js

然后在网上
执行:domain.tld/-2

一切都很完美。
我看到它加载2.js然后是 用一个函数来做mysql查询
并显示所有结果。完美。

现在在网上试试吧 转到:domain.tld/-3

1.js尝试加载3.js
因为urlpath名称是'/ -3'
但没有'3.js'

我期待它说出

"page not found'

node 1.js没有崩溃 和网络浏览器仍然是..'loading..

这是1.js:

var http = require('http');
var url = require('url');
var mysql = require('mysql');

var Memcached = require('memcached');
var memcached = new Memcached('localhost:11211');

var connection = mysql.createConnection({
    host     : '--------------',
    user     : '2',
    password : '-------------',
    database : '1'
});

connection.connect();


var server=http.createServer(function(req,res){
    res.writeHead(200,{'Content-Type': 'text/html; charset=utf-8'});
var pathname=url.parse(req.url).pathname;

if (pathname.match(/\/-\d{1,2}/)) {
     pathname = pathname.replace('-', '')

    try{
    var o = require('/' + pathname + '.js')
    } catch (err){
    var o = '0'
    }

    if (o == '0'){
        o = 'page not found'
    }else{
         o.makeQuery(connection, function(err, result){
             if(err) return res.end(err);
         o = result;
             res.end(o)
         });
    }

} else if (pathname.match(/^\/$/)) {
    res.end('welcome to index page');
} else {
    pathname = pathname.replace('/', 'o');
    res.end('welcome to user profile page');
}

}).listen(80);

虽然可能无关紧要。
这是2.js

exports.makeQuery = function(connection, callback) {

  var queryString = 'SELECT * FROM 1_accounts order by ac_nu asc limit 5';

  connection.query(queryString, function(err,res,fields){
    if (err) {return callback(err)};

    bb = JSON.stringify(res);
    callback(null, bb);
  });
}

之前我将以下段添加到了 1.js它通过网络正常工作。

if (pathname.match(/\/-\d{1,2}/)) {
} else if (pathname.match(/^\/$/)) {
} else {
}
换句话说,它必须要做的事情 或许那些。

在我添加这些行之前..
它会顺利显示:

"page not found"

1 个答案:

答案 0 :(得分:0)

您已找到o ='页面未找到'但没有response.write(o)或res.end(o),因为它在else部分,因此永远不会显示