0
我有這樣的明確的js代碼在我server.js文件:快遞JS,添加「/」結尾的所有網址
var express = require('express');
var app = express();
var fs = require('fs');
var publicdir = __dirname + '/client';
app.set('port', 8080);
app.use(function(req, res, next) {
if (req.path.indexOf('/js/') === -1 && req.path.indexOf('/css/') === -1) {
if (req.path.substr(-1) === '/') {
req.url = req.url.slice(0, -1) + '.html';
} else {
res.redirect(301, req.url + '/');
}
}
next();
});
app.use(express.static(publicdir, {
extensions: ['html', 'htm']
}));
我試圖讓網址一致渲染始終有一個尾隨「 /「在每個URL的末尾。雖然上面的代碼工作,我一直在我的日誌文件中收到錯誤消息說:
Error: Can't set headers after they are sent.
這個錯誤來自這樣的URL模式:
http://www.myserver.com/my-page-name
但它確實正確添加尾隨「/」結束。
如何更改上述代碼以消除該日誌錯誤?
啊哈!這是關鍵。我將'next()'改爲'done()',而不是正常工作,沒有日誌錯誤!謝謝! – tonejac
@tonejac - 我不知道你從哪裏得到了一個'done()',但我很高興它現在已經修復。 – jfriend00
當我刪除下一個()調用剛剛掛起的服務器並不會提供頁面。添加完成()做了訣竅。謝謝你的提示。 – tonejac