Node.js 回调在async.foreachof内不起作用
我从我的dao获得回调并进入我的服务,在我的服务中,我迭代了要发送到我的dao的对象列表 我的服务代码Node.js 回调在async.foreachof内不起作用,node.js,callback,Node.js,Callback,我从我的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){
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(){});
控制层
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(){});
我需要将数据发送回浏览器现有代码存在两个问题 1.通过引用
callback
您正在调用asyn.forEachOf的callback
2.尝试调用您的原始回调(实习生执行res.json(数据)
)。在这里,您试图发送多个响应,这是不可能的
尝试改用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);
});
}
Muthukumar migavum nandri,我猜你是泰米尔人,无论如何!非常感谢你,伙计,你刚刚救了我的命!!!!!!!bro我能知道为什么我不能使用foreach而不是mapvalues吗?foreach不返回每次执行的结果,但mapvalues会返回。为什么cb(null,数据)而不是cb(数据)cb(null,数据)对应于函数(err,结果)。因此,如果在添加用户时捕获到任何错误,则可以传递该错误来代替null。更多信息