我从我的dao进入回调并进入我的服务,在我的服务中,我已经迭代了要发送给我的dao的对象列表。
我的服务代码
var dao = require('./dao');
var async = require('async');
exports.addUser = function(obj,callback) {
async.forEachOf(obj,function(value,key,callback){
dao.addUser(value,function(data){
callback(data);
})
})
}
此回调不会转到我的控制层
控制层
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(){});
我需要将数据发送回浏览器
答案 0 :(得分:1)
现有代码存在两个问题
1.通过引用callback
,您正在调用asyn.forEachOf的callback
2.试图调用你的原始回调(实习生res.json(data)
)。在这里,您尝试发送多个不可能的响应。
尝试使用async.mapValues
代替
exports.addUser = function(obj,callback) {
async.mapValues(obj,function(value,key,cb){
dao.addUser(value,function(data){
cb(null, data);
})
}, function(err, result) {
// result is now a map of results for each key
callback(result);
});
}