这是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"
答案 0 :(得分:0)
您已找到o ='页面未找到'但没有response.write(o)或res.end(o),因为它在else部分,因此永远不会显示