0
中に私は今、私が送るべきget関数を持つビューと店からいくつかの情報が機能NodeJSエクスプレスパス値リダイレクト
router.post('/searchbook', function(req, res, next){
var s_book_name="n/a";
var s_author_name="n/a";
var s_isbn13_id="n/a";
var isbn=req.body.isbn;
var url="http://isbndb.com/api/v2/json/63JEP95R/book/"+isbn;
request({
url: url,
json: true
}, function (error, response, body) {
if (!error && body.data!=null && response.statusCode === 200) {
if(body.data[0].title!=null)
s_book_name=body.data[0].title;
if(body.data[0].author_data[0]!=null)
s_author_name=body.data[0].author_data[0].name;
if(body.data[0].isbn13!=null)
s_isbn13_id=isbn;
}
else
{ error="Book not found. Please enter the information manually.";
res.redirect('/newbook');
}
}).then(function() {
res.redirect('/newbook2');
});
});
のスコープ内で宣言された変数の値を処理していますGET、POST機能を持っていますこの情報を別のビューに表示します。
router.get('/newbook2', function(req, res){
res.render('newbook2', {title: 'Add New Book',s_book: s_book_name, s_author: s_author_name, s_isbn13: s_isbn13_id ,s_publisher: s_publisher_name , s_category: s_category_id});
});
ただし、ビューの情報は常に未定義として表示されます。 get関数で使用される値はスコープの外にあると私は信じています。グローバル変数を使うべきですか?これを行う別の方法がありますか?
あなたはルータ 'のような意味に使用することができますexpressJs
expressJSを使用しない
を使用してアクセスすることができます。res.render( 'newbook2'、{s_book:req.s_book_name ... 'まだ動作していません。まだ定義されていません。 –No.reso.renderは、現在のreq-respサイクルでのみ動作し、リダイレクトでは機能しません –