所以我對 NodeJS 相當陌生,我想嘗試使用它進行路由,但是我遇到了一個奇怪的問題,我不確定是不是我的托管服務提供商有一些奇怪的配置問題。
但這是我的場景,我有一個網站,其中包含大量頁面,這些頁面是根據資料庫中保存的位置從資料庫生成的,例如,如果資料庫中保存了三個城市,我需要:
mydomain.com/BigCity
mydomain.com/OtherBigCity
mydomain.com/SmallCity
同樣,這些不能硬編碼。
所以這是我用于測驗重定向的基本代碼:
'use strict';
var path = require('path');
var express = require('express');
var fs = require('fs');
var app = express();
// Different variations of things I have tried (including hard coding just for testing)
app.use('*', render);
app.use('/*/', render);
app.use('/*', render);
app.use('/', render);
app.use('Location2', render);
app.use('/Location1', render);
var server = app.listen(process.env.PORT || 3000, function (r) {
console.log('listening');
});
function render(req, res) {
fs.readFile(path.resolve("./index.html"), "utf-8", (err, data) => {
if (err) {
console.log(err);
return res.status(500).send("An error occured");
}
return res.send(
data.replace(
'<div id="root"></div>',
`<h1>Test</h1><b>${req.originalUrl}</b><br/><b>${req.url}</b>`
)
)
})
}
所以在我的本地系統上,它作業得非常好,并且按預期輸出,但是當我部署到我的主機時,只有主 url 有效(mydomain.com/),但無論我在域后輸入什么,我都會得到 404錯誤,我什至不確定如何正確診斷問題。
據我所知,packages.json 中的所有專案都安裝在服務器上(我假設如果沒有安裝我會收到錯誤訊息),唯一的區別是我的本地計算機有 NodeJS 版本 16,而我的主機提供商有 v10。
uj5u.com熱心網友回復:
app.use()您應該使用
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/406427.html
標籤:
