gpt4 book ai didi

node.js - 添加到 sails 中的集合

转载 作者:太空宇宙 更新时间:2023-11-03 23:00:30 27 4
gpt4 key购买 nike

也许我的问题很简单很肤浅但请指导我

我的地方模型是:

module.exports = {
attributes: {

title: {
type: 'string',
},

body: {
type: 'string',
columnType: 'text',
},

address: {
type: 'string',
columnType: 'text',
},

x_map: {
type: 'number',
columnType: 'float'
},

y_map: {
type: 'number',
columnType: 'float'
},

like: {
type: 'number',
columnType: 'integer'
},

dis_like: {
type: 'number',
columnType: 'integer'
},

visited: {
type: 'number',
columnType: 'integer'
},

emtiaz: {
type: 'number',
columnType: 'integer'
},

tags: {
type: 'string',
},

city:{
collection: 'city',
via: 'place_owner'
},
},
};

我的城市模型是:

module.exports = {

attributes: {
title: {
type: 'string',
},



ostan_owner :{
model: 'ostan'
},

place_owner: {
model: 'place'
}
},
};

我的位置 Controller 是:

create: function (req, res, next) {
Place.create(req.params.all, function place_created(err,new_place){
if(err && err.invalidAttributes) {
err = validator(Place, err);
return res.json({'status':false, 'errors':err.Errors});
}
else{
new_place.add('city',req.param('city'));
new_place.save(function (err) {
if(err){
return res.json({'status':false,'errors':err});
}
else {
res.json({'status':true,'result':new_place});
}
});

}


});
},

现在,当我尝试创建新地点并将新城市添加到集合中时,它给我错误:

TypeError: Cannot read property 'add' of undefined  
at place_created (C:\Programing_workspace\gardeshgar_sailsV1\gardeshgar\api\controllers\PlaceController.js:28:19)

当我使用 model_X.addToCollection 时,我收到相同的错误
我使用 sails v 1.0,我是 sails.js 的新手

请帮助我

最佳答案

Sails.js 1.0 不再支持 .add().save() 。请改用 .addToCollection()

await Place.addToCollection(new_place.id, 'city').members(req.param('city'));

另一个问题是 sails.js 1.0 不会自动获取创建/更新的对象(在您的情况下是 new_place )。您需要添加 { fetch: true } 才能获取创建的对象。

例如:

User.create({...}, function(err, createdUser) {
//...
}, { fetch: true });

或者使用等待:

var createdUser = await User.create({...}).fetch();

我认为,就您而言,解决方案应该是:

create: function (req, res, next) {
Place.create(req.params.all, function place_created(err,new_place){
if(err && err.invalidAttributes) {
err = validator(Place, err);
return res.json({'status':false, 'errors':err.Errors});
}
else{
await Place.addToCollection(new_place.id, 'city').members(req.param('city')).exec(function (err) {
if(err){
return res.json({'status':false,'errors':err});
}
else {
res.json({'status':true,'result':new_place});
}
});
}
}, { fetch: true });
},

关于node.js - 添加到 sails 中的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49585683/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com