无法修改环回中的 afterRemote 挂钩中的响应
Can not modify response in afterRemote hook in loopback
我有一个模型可以在现场上传一个包含一些数据的文件。我想要做的就是上传文件并将文件路径作为字符串,然后对另一个模型进行创建查询,然后将响应发送回创建查询中作为响应发送的数据。这是我的代码。不是修改。
var loopback = require('loopback');
var app = module.exports = loopback();
module.exports = function(Container) {
Container.beforeRemote('upload', function(context, user, next) {
next();
});
Container.afterRemote('upload', function(context, affectedInstance, next) {
var container = affectedInstance.result.files.file[0].container;
var val;
if(container=='profilepic')
{
var fileName = affectedInstance.result.files.file[0].name;
var FirstName= affectedInstance.result.fields.FirstName[0];
var LastName = affectedInstance.result.fields.LastName[0];
var Email = affectedInstance.result.fields.Email[0];
var Password = affectedInstance.result.fields.Password[0];
var account = Container.app.models.Account;
account.create({
FirstName:FirstName,
LastName:LastName,
Email:Email,
Password:Password,
UserPicture:'/server/storage/'+container+'/'+fileName,
},function(err,ant){
if(err)
console.log(err);
// Modifies the context
var res= JSON.parse(JSON.stringify(ant));
context.result={
data:res
}
console.log(context.result); // result shows the desired value
});
}
next();
});
};
终于得到了想要的回复。问题是回调 next() 在修改操作之前执行。所以我将下一个移动到创建查询的末尾。
var loopback = require('loopback');
var app = module.exports = loopback();
module.exports = function(Container) {
Container.beforeRemote('upload', function(context, user, next) {
next();
});
Container.afterRemote('upload', function(context, affectedInstance, next) {
var container = affectedInstance.result.files.file[0].container;
var val;
if(container=='profilepic')
{
var fileName = affectedInstance.result.files.file[0].name;
var FirstName= affectedInstance.result.fields.FirstName[0];
var LastName = affectedInstance.result.fields.LastName[0];
var Email = affectedInstance.result.fields.Email[0];
var Password = affectedInstance.result.fields.Password[0];
var account = Container.app.models.Account;
account.create({
FirstName:FirstName,
LastName:LastName,
Email:Email,
Password:Password,
UserPicture:'/server/storage/'+container+'/'+fileName,
},function(err,ant){
if(err)
console.log(err);
// Modifies the context
var res= JSON.parse(JSON.stringify(ant));
context.result={
data:res
}
console.log(context.result); // result shows the desired value
next(); // Call back;
});
}
});
};
我有一个模型可以在现场上传一个包含一些数据的文件。我想要做的就是上传文件并将文件路径作为字符串,然后对另一个模型进行创建查询,然后将响应发送回创建查询中作为响应发送的数据。这是我的代码。不是修改。
var loopback = require('loopback');
var app = module.exports = loopback();
module.exports = function(Container) {
Container.beforeRemote('upload', function(context, user, next) {
next();
});
Container.afterRemote('upload', function(context, affectedInstance, next) {
var container = affectedInstance.result.files.file[0].container;
var val;
if(container=='profilepic')
{
var fileName = affectedInstance.result.files.file[0].name;
var FirstName= affectedInstance.result.fields.FirstName[0];
var LastName = affectedInstance.result.fields.LastName[0];
var Email = affectedInstance.result.fields.Email[0];
var Password = affectedInstance.result.fields.Password[0];
var account = Container.app.models.Account;
account.create({
FirstName:FirstName,
LastName:LastName,
Email:Email,
Password:Password,
UserPicture:'/server/storage/'+container+'/'+fileName,
},function(err,ant){
if(err)
console.log(err);
// Modifies the context
var res= JSON.parse(JSON.stringify(ant));
context.result={
data:res
}
console.log(context.result); // result shows the desired value
});
}
next();
});
};
终于得到了想要的回复。问题是回调 next() 在修改操作之前执行。所以我将下一个移动到创建查询的末尾。
var loopback = require('loopback');
var app = module.exports = loopback();
module.exports = function(Container) {
Container.beforeRemote('upload', function(context, user, next) {
next();
});
Container.afterRemote('upload', function(context, affectedInstance, next) {
var container = affectedInstance.result.files.file[0].container;
var val;
if(container=='profilepic')
{
var fileName = affectedInstance.result.files.file[0].name;
var FirstName= affectedInstance.result.fields.FirstName[0];
var LastName = affectedInstance.result.fields.LastName[0];
var Email = affectedInstance.result.fields.Email[0];
var Password = affectedInstance.result.fields.Password[0];
var account = Container.app.models.Account;
account.create({
FirstName:FirstName,
LastName:LastName,
Email:Email,
Password:Password,
UserPicture:'/server/storage/'+container+'/'+fileName,
},function(err,ant){
if(err)
console.log(err);
// Modifies the context
var res= JSON.parse(JSON.stringify(ant));
context.result={
data:res
}
console.log(context.result); // result shows the desired value
next(); // Call back;
});
}
});
};