迭代对象并使用回调发回

时间:2017-12-06 12:51:38

标签: node.js express callback

我正在发送要添加到数据库中的对象列表,该对象是通过在我的控制器中使用req.body获得的,然后发送到服务层,该服务层被发送到dao层以进行我的数据库操作。

使用回调我想发回数据,但我收到了错误

Unhandled Rejection Error : Can't set Headers after they are sent.

我的控制器controller.js

var express = require('express');
var app = express();
var service = require('./service');

app.use(express.urlencoded({ extended: false }));
app.use(express.json());

app.post('/addPerson',function(req,res){
    var obj = req.body;
    console.log(obj);
    console.log("......",obj.name);
    console.log("......",obj.age);
    service.addUser(obj,function(data) {
        console.log("---->",data);
        res.json(data);
    })
})

var server = app.listen(8080,function(){});

我的服务service.js

var dao = require('./dao');

exports.addUser = function(obj,callback) {
    for (var property in obj) {
        if(obj.hasOwnProperty) {
            console.log(obj[property]);
            dao.addUser(obj[property],function(created){
                callback(created);
            })
        }
    }
}

我的dao dao.js

var models = require("./models");
var sequelize = models.sequelize;
var PropertiesReader = require('properties-reader');
var sqlQuery = PropertiesReader(__dirname+'/sql_queries.properties');

module.exports.addUser = function(obj,callback) {
    console.log("dao",obj.name);
    console.log("dao",obj.age);
    var add_query = sqlQuery._properties.create_person;
    sequelize.query(add_query,{
        replacements : {
            name : obj.name,
            age : obj.age
        },
        type : sequelize.QueryTypes.INSERT,
        model : models.Person
    }).then(function(person){
        callback(person);
    });
}

0 个答案:

没有答案