0
對Node.js不熟悉。快速捕獲除靜態內容(如css和js)以外的所有路由
我正在使用VS2015 Express 3模板。我怎麼能寫我的路由:
- 有一個頁面,在「/」
- 有AA捕獲與家庭頁面響應所有路線「/」
- 不能與JS和CSS文件干涉
即,我嘗試了以下,但然後在公共目錄JS和CSS文件迴應與404不會呈現或執行。我認爲靜態文件代碼會處理它,但它不會。它工作,直到我添加「*」塊。
var express = require('express');
var routes = require('./routes');
var http = require('http');
var path = require('path');
var app = express();
// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(app.router);
app.use(require('stylus').middleware(path.join(__dirname, 'public')));
app.use(express.static(path.join(__dirname, 'public')));
// development only
if ('development' == app.get('env')) {
app.use(express.errorHandler());
}
app.get('/', routes.index);
app.get('*', function (req, res) {
res.send('/', 404);
});
http.createServer(app).listen(app.get('port'), function() {
console.log('Express server listening on port ' + app.get('port'));
});
如果你」真的只是想添加一個404處理程序,然後在這裏看到:https://expressjs.com/en/starter/faq.html#how-do-i-handle-404-responses – jfriend00
快速'靜態'中間件**必須**之前定義所有其他中間件:'app.use(express.static(path.join(__ dirname,'public')));',放在'app.set('view engine','jade')之後;' – alexmac
這裏有一個關於在node.js中執行正確的404和500錯誤處理的好文章:http://www.hacksparrow .COM /表達-JS-自定義錯誤頁-404和-500.html。 'app.get('*',...)'不是你應該怎麼做的。 – jfriend00