Javascript 将对象数组从一条管线传递到另一条管线
我正在使用Node.js和Express.js,并尝试将一个对象数组从路由传递到另一个路由。 我试图通过QueryString,但是Javascript 将对象数组从一条管线传递到另一条管线,javascript,node.js,express,Javascript,Node.js,Express,我正在使用Node.js和Express.js,并尝试将一个对象数组从路由传递到另一个路由。 我试图通过QueryString,但是类型的表示它是一个对象,不能正常工作。 我应该以另一种方式将其传递给/contacts,或者将查询字符串的结果转换为对象数组并使用它 以下是我试图做的: app.get('/names', function(req, res) { var arr = new Array(); arr.push({name: 'John'}); arr.pus
类型的
表示它是一个对象,不能正常工作。
我应该以另一种方式将其传递给/contacts
,或者将查询字符串的结果转换为对象数组并使用它
以下是我试图做的:
app.get('/names', function(req, res) {
var arr = new Array();
arr.push({name: 'John'});
arr.push({name: 'Dani'});
res.redirect('/contacts?arr=' + arr);
})
app.get('/contacts', function(req, res) {
var arr = req.query.arr;
console.log(arr[0].name);
})
希望你能帮忙,
谢谢。您可以使用JSON.stringify
app.get('/names', function(req, res) {
var arr = new Array();
arr.push({name: 'John'});
arr.push({name: 'Dani'});
res.redirect('/contacts?arr=' + JSON.stringify(arr));
})
app.get('/contacts', function(req, res) {
var arr = req.query.arr;
console.log(JSON.parse(arr));
})
另一种方法是使用
app.locals
。
基本上,它允许您在应用程序的生命周期中存储一些变量。
对于路线,将有req.app.locals
那么如何使用它呢
app.get('/names', function(req, res) {
var arr = new Array();
arr.push({name: 'John'});
arr.push({name: 'Dani'});
req.app.locals.nameOfYourArr = arr;
res.redirect('/contacts');
})
app.get('/contacts', function(req, res) {
var arr = req.app.local.nameOfYourArr;
console.log(arr[0].name);
})
(可以找到更多信息)如果它为您解决了问题,您是否可以将其标记为answerd。这对任何一个偶然发现的人都有帮助。它不起作用,它给出了一个错误;'JSON中位于位置1',console.log(JSON.stringify(arr))的意外标记o给出了以下内容:[{“name”:“John”},{“name”:“Dani”}]它在哪里给出错误??在JSON.stringify或parse@Netside这与标题无关。如果您在响应客户端后试图读/写错误,则会出现您发布的错误。@Shivam I stand correct,您是对的。你的代码确实有效。只是自己检查了一下(在我以前编写的代码中使用了它)。很抱歉我会删除我之前的评论,但你的评论仍然会在那里,人们可能会想知道。不管是哪种方式,你的评论和回答都被高估了。不管怎样,对新手来说可能更好:)