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
循环。