0
私はExpressを学びたいと思っていますし、bit.lyのウェブページ(URL短縮ツールなど)を作成しようとしています。ページに表示されているものはすべて表示されますが、ページをリフレッシュするとリンクはまだありますが、サーバーを再起動するまで消えません。私は新しいリンクを生成することができ、それは置き換えられますが、私がページをリフレッシュすると、それは消えません。ページの内容はリフレッシュ時でも常に表示されます
エクスプレス:任意の入力のための
var data;
var url;
/* GET home page. */
router.get('/', (req, res, next) => {
//var d_20803340c40722494a7c737b0725d0178d4e1d40;
res.render('index', { 'data': data, 'link': url });
});
/* POST HANDLER */
router.post('/link', function(req, res, next) {
var pattern = /^((http|https|):\/\/)/;
url = req.body.link;
if (!pattern.test(url))
{
url = "http://" + url;
bitly.shorten(url)
.then(response => {
data = response.data.url;
res.redirect('/');
});
}
})
感謝。
ああ、私はこのための修正プログラムになる可能性があるので、テンプレートエンジンに変数を引き渡し、投稿リクエストの情報でこれらの値を変更することはできますか? – bexo
@bexoあなたがしたいことに応じて、多くの方法があります。最初に気になることは、 '' /?data = ...&link = ... ''にリダイレクトして、' 'get'ルートにクエリ文字列でそれらを見つけた場合にのみそれらを送りさせることです。次に、クエリ文字列のないページにリダイレクトするホームリンクを含めます。もう1つの答え(私ははるかに気に入っています)は、 'post'がリダイレクトを行う代わりにデータを持つJSONオブジェクトを返すようにすることです。次に、クライアントからPOST非同期を行い、データを表示します。 –