Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.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 节点JS表示所有显示404的请求_Javascript_Node.js - Fatal编程技术网

Javascript 节点JS表示所有显示404的请求

Javascript 节点JS表示所有显示404的请求,javascript,node.js,Javascript,Node.js,所有请求都在控制台中显示GET/404 8.128 ms-13 我已经发布了下面的代码,代码中没有错误。我可以运行其他NodeJS应用程序。但这是控制台中显示的404。它甚至没有显示fav图标。它曾经工作过一次,显示无法获取/错误,此时fav图标可见 'use strict'; var express = require('express'); var app = express(); var bodyParser = require('body-parser'); var favicon =

所有请求都在控制台中显示
GET/404 8.128 ms-13

我已经发布了下面的代码,代码中没有错误。我可以运行其他
NodeJS
应用程序。但这是控制台中显示的404。它甚至没有显示fav图标。它曾经工作过一次,显示
无法获取/
错误,此时fav图标可见

'use strict';
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var favicon = require('serve-favicon');
var logger = require('morgan');
var port = process.env.PORT || 8001;
var four0four = require('./utils/404')();
var environment = process.env.NODE_ENV;
app.use(favicon(__dirname + '/favicon.ico'));
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
app.use(logger('dev'));
app.use('/api', require('./routes'));
console.log('About to crank up node');
console.log('PORT=' + port);
console.log('NODE_ENV=' + environment);
switch (environment){        
default:
    console.log('** DEV **');
    app.use(express.static('./src/client/'));
    app.use(express.static('./'));
    app.use(express.static('./tmp'));
    app.use('/app/*', function(req, res, next) {
        four0four.send404(req, res);
    });
    app.use('/*', express.static('./src/client/index.html'));
    break;
}
app.listen(port, function() {
console.log('Express server listening on port ' + port);
console.log('env = ' + app.get('env') +
            '\n__dirname = ' + __dirname  +
            '\nprocess.cwd = ' + process.cwd());
});
据我所知,您在这里的路线
app.use('/*',express.static('./src/client/index.html')
将使用
/src/client/index.html
作为基本路径,并附加您提供的任何内容以查找文件。比如说

/some file
将查找显然不存在的
/src/client/index.html/some file

如果您想进一步了解它,静态中间件在内部使用流文件

所以你可以这样做
app.use('/*',express.static('./src/client')

默认情况下,它会将
/
设置为
src/client/index.html
,您可以通过设置此处指定的
index
选项来更改该行为

如果要将
/*
重定向到
/src/client/index.html
请执行此操作

// first set the static middleware
app.use('/public', express.static('./src/client'));
// then use redirect
app.get('/*', function(req, res, next){
  res.redirect('/public/index.html');
});

此设置将所有内容重定向到
public/index.html
。如果您想添加API或其他路由,请将其放在
app.get('/*')

什么是您的
four0four.send404(req,res),你把它作为你的中间人你在你的路线之前添加
/api
了吗?@BidhanA我没有意识到这一点,事实上我对NodeJSThanks是新手。当我用您的代码替换开关代码时,控制台中出现了重定向
GET/public/index.html 302 0.498 ms-92
。在浏览器中,我收到
Internet Explorer无法显示页面
即使我点击127.0.0.1:8001,我收到404错误,有没有解决此问题的方法。它显示
网站在Chrome中有一个重定向循环
,你想做什么?将所有内容重定向到
public/index.html
?顺便说一句,我把
app.use
改为
app.get
,原来的代码错了。它现在应该可以工作了,我刚刚在我的机器上运行过。我对Node JS实际上是新手。我需要的只是一个服务器来运行我的javascript代码。我已经替换了开关默认值中的代码。当我运行它时,我想我得到了
重定向302
循环。