gpt4 book ai didi

javascript - NodeJS Express 在重定向期间传递值

转载 作者:行者123 更新时间:2023-12-02 14:28:24 26 4
gpt4 key购买 nike

我有一个 post 函数,它从 View 中获取一些信息并将处理后的值存储在函数范围内声明的变量中

   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 函数,可以将此信息发送到另一个 View 。

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});
});

但是 View 中的信息始终显示为未定义。我相信 get 函数中使用的值超出了范围。我应该使用全局变量吗?还有其他方法可以做到这一点吗?

最佳答案

您应该使用app#locals设置整个应用程序可用的变量。

或者您可以使用查询字符串参数传递数据并使用

访问它

没有expressJs

var url  = require('url');

http.createServer(function(req,res){
var url_parts = url.parse(req.url, true);
var query = url_parts.query;

console.log(query); //
})

使用expressJS,可以使用req#query

app.get('/path',function(req,resp){
req.query // get querystring
})

关于javascript - NodeJS Express 在重定向期间传递值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38047070/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com