我想做一個從一個nodejs文件到另一個nodejs文件的重定向。我用res.redirect(URL),但是當執行它說:「不能GET/nodepage」Node.js重定向到另一個node.js文件
目前我使用
// Handler for GET/
app.get('/nodepostgres', function(req, res){
res.redirect('/nodepost.js?a=1');
});
我想做一個從一個nodejs文件到另一個nodejs文件的重定向。我用res.redirect(URL),但是當執行它說:「不能GET/nodepage」Node.js重定向到另一個node.js文件
目前我使用
// Handler for GET/
app.get('/nodepostgres', function(req, res){
res.redirect('/nodepost.js?a=1');
});
我覺得有幾件事情,你不解釋正確或在你的問題中沒有正確理解。
我不確定你的意思是「從一個nodejs文件重定向到另一個nodejs文件」。您似乎認爲節點腳本文件對應於一個URL(或一個頁面)。這是錯誤的。節點腳本對應於可能(或可能不)通過多個URL公開多個頁面並且可以從其他腳本文件(您將爲站點或應用程序運行單個根腳本文件)導入應用程序邏輯的應用程序。這與你所知道的(vannilla,沒有框架)PHP完全不同。
通過不同的URL顯示不同的頁面稱爲路由,關於路由的所有Express文檔可以是found here。
我的理解是,您試圖爲每個腳本創建一個函數/頁面/ Url:nodepost.js文件是一個頁面。代碼組織是一件好事,但我們首先關注node + express如何工作。
據我所知,你是一個應用有幾個裸露的網址,讓我們說:
注:我們忘記文件=頁面的ID,我們不希望的擴展,出現在URL,這樣nodepost.js
變得nodepost
你可以做的是設置了3網址論述:
app.get('/', function(req, res) { res.render('home'); }); // render the home page
app.get('/nodepost', function(req, res) { // expose the nodepost function
var a = req.params.a;
doSomethingWith(a);
// res.render, res.send ? whatever you want...
]);
app.get('/nodepostgres', function(req, res){ // use of res.redirect(url[, status])
res.redirect('/nodepost');
});
這是你想要的嗎?
然後,這是一個更優雅的方式來處理參數(「a」)。
app.get('/notepost/:a', function(req, res) { // called via /nodepost/here_goes_a_valu ; no "?"
var a = req.params.a;
});
爲什麼它更好?