首页 > 解决方案 > 如何使用 async.eachOfSeries

问题描述

我正在使用 Express、Postgres for DB 和 Sequelize for ORM 构建一个应用程序。

我还导入了异步实用程序模块。

我有一个模型Post,它有一个标题。当我通过查询时,title=One&title=Two&title=Three我想创建 3 个具有这些标题的帖子。

我试过这个:

async.eachSeries(req.query.title, function(value, callback) {
  console.log(value);
  Post.create({
    title: value
  });
});

但它只创建一个帖子“一个”,并且只记录One.

如何正确设置为每个 req.query 创建帖子?

标签: javascriptnode.jsexpresssequelize.jsasync.js

解决方案


Querystring 是一个对象,因此您不能将它用作同一个对象。

“标题=一&标题=二&标题=三”= {标题:一}

另一种选择是使用数组并通过 JSON.stringify 进行转换

var URL  = "http://hostname/?title=" + encodeURIComponent(JSON.stringify(['One', 'Two', 'Three']));

var arrayTitle = JSON.parse( decodeURIComponent(req.query.title) );
async.eachSeries(arrayTitle , function(value, callback) {
    console.log(value);
    Post.create({
        title: value
    });
});


推荐阅读