Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript node.js express路由404问题_Javascript_Node.js_Express_Url Routing - Fatal编程技术网

Javascript node.js express路由404问题

Javascript node.js express路由404问题,javascript,node.js,express,url-routing,Javascript,Node.js,Express,Url Routing,您好,下面是一些关于node.js和experss.js的教程。 到目前为止,我构建了以下代码。我的问题是,当我请求以下页面时: http://localhost:3000/test它确实像预期的那样返回404。此外,ip和/工人工作正常。 但是当我请求例如http://localhost:3000/asdf/asdf浏览器返回无法获取/asdf/asdf 资料来源如下: var cluster = require('cluster'); if (cluster.isMaster) {

您好,下面是一些关于node.js和experss.js的教程。 到目前为止,我构建了以下代码。我的问题是,当我请求以下页面时:
http://localhost:3000/test
它确实像预期的那样返回404。此外,ip和/工人工作正常。 但是当我请求例如
http://localhost:3000/asdf/asdf
浏览器返回
无法获取/asdf/asdf

资料来源如下:

var cluster = require('cluster');

if (cluster.isMaster) {

    var cpuCount = require('os').cpus().length;
    var workers = [];   

    for (var i = 0; i < cpuCount; i++) {
        workers[i] = cluster.fork();
        console.log('\t - Starting Worker (PID): ' + workers[i].process.pid);
    }

    console.log('\n\t - ' + cpuCount + ' Workers started.\n');

    cluster.on('exit', function (worker){

        console.log('\t - Worker ' + worker.id + ' with (PID): ' + worker.process.pid + ' died!');

        for (var i = 0; i < workers.length; i++) {

            if (worker.process.pid === workers[i].process.pid) {
                workers.splice(i, 1);
                console.log('\t - Workers alive: ' + workers.length);
            }

        }

        for (var i = 0; i < cpuCount - workers.length; i++) {

            workers.push(cluster.fork());
            console.log('\t - Starting Worker with (PID): ' + workers[workers.length - 1].process.pid);

        } 

    });

} else {

    var express = require('express');
    var app = express();

    app.configure(function() {
        app.set('views', __dirname + '/views');
        app.set('view engine', 'jade');

        app.use(express.bodyParser());
        app.use(express.methodOverride());
        app.use(app.router);
        app.use(express.static(__dirname + '/public'));
    });

    var server = require('http').createServer(app);
    var io = require('socket.io').listen(server);
    server.listen(3000);

    app.get('/:page', function (req, res) {

        var page = req.params.page;

        switch(page) {
        case '':
            console.log('Page: ' + page);
            res.sendfile(__dirname + '/index.html');
        break;
        case 'ip':
            res.send('Client ip address: ' + req.ip);
        break;
        case 'worker':
            res.send('Worker ' + cluster.worker.id + ', with (PID): ' + cluster.worker.process.pid + ' replyed.');
        break;
        default:
            res.status(404).send('<h1>Page not found!</h1>');
        }

    });


    console.log('\t - Worker ' + cluster.worker.id + ' up & running!');
}
var cluster=require('cluster');
if(cluster.isMaster){
var cpuCount=require('os').cpus().length;
var工人=[];
对于(变量i=0;i
有人能解释一下为什么它不返回404,我应该怎么做才能返回404吗

更新


当我请求
http://localhost:3000
我得到
无法得到

这是我根据以下内容提出的解决方案:

var cluster=require('cluster');
if(cluster.isMaster){
var cpuCount=require('os').cpus().length;
var工人=[];
对于(变量i=0;iip');
res.send('客户端ip地址:'+请求ip);
打破
个案"工人":
console.log('Case->Worker');
res.send('Worker'+cluster.Worker.id+',带有(PID):'+cluster.Worker.process.PID+'已答复');
打破
}
});
log('\t-Worker'+cluster.Worker.id+'up&running!');
}
var cluster = require('cluster');

if (cluster.isMaster) {

    var cpuCount = require('os').cpus().length;
    var workers = [];   

    for (var i = 0; i < cpuCount; i++) {
        workers[i] = cluster.fork();
        console.log('\t - Starting Worker (PID): ' + workers[i].process.pid);
    }

    console.log('\n\t - ' + cpuCount + ' Workers started.\n');

    cluster.on('exit', function (worker){

        console.log('\t - Worker ' + worker.id + ' with (PID): ' + worker.process.pid + ' died!');

        for (var i = 0; i < workers.length; i++) {

            if (worker.process.pid === workers[i].process.pid) {
                workers.splice(i, 1);
                console.log('\t - Workers alive: ' + workers.length);
            }

        }

        for (var i = 0; i < cpuCount - workers.length; i++) {

            workers.push(cluster.fork());
            console.log('\t - Starting Worker with (PID): ' + workers[workers.length - 1].process.pid);

        } 

    });

} else {

    var express = require('express');
    var app = express();

    app.configure(function() {
        app.set('views', __dirname + '/views');
        app.set('view engine', 'jade');

        app.use(express.bodyParser());
        app.use(express.methodOverride());
        app.use(app.router);
        app.use(express.static(__dirname + '/public'));
        app.use(function(req, res) {
            res.status(404).end('<h1>Page not found!</h1>');
        });
    });

    var server = require('http').createServer(app);
    var io = require('socket.io').listen(server);
    server.listen(3000);

    app.get('/', function (req, res) {
        res.sendfile(__dirname + '/index.html');
    });

    app.get('/:page', function (req, res) {

        var page = req.params.page;

        switch(page) {
            case 'ip':
                console.log('Case -> ip');
                res.send('Client ip address: ' + req.ip);
            break;
            case 'worker':
                console.log('Case -> Worker');
                res.send('Worker ' + cluster.worker.id + ', with (PID): ' + cluster.worker.process.pid + ' replyed.');
            break;
        }

    });

    console.log('\t - Worker ' + cluster.worker.id + ' up & running!');
}