Javascript 如何在sailsjs中实现自定义路由
我正在努力理解sails.js。首先,我尝试生成新的api。 这是我的模型和控制器代码 Coutries.jsJavascript 如何在sailsjs中实现自定义路由,javascript,sails.js,Javascript,Sails.js,我正在努力理解sails.js。首先,我尝试生成新的api。 这是我的模型和控制器代码 Coutries.js module.exports = { attributes: { title:{ type:'string', unique:true, primaryKey:true }, cities:{ collection:'Cities', via:'country' }
module.exports = {
attributes: {
title:{
type:'string',
unique:true,
primaryKey:true
},
cities:{
collection:'Cities',
via:'country'
}
}
};
城市,js
module.exports = {
attributes: {
title: {
type:'string',
unique:true,
primaryKey:true
},
country:{
model:'Countries',
type:'String'
},
description: {
type:'string'
}
}
};
接下来是我写的routes.js
'get /countries':'CountriesController.getAllCountries'
我需要一份国家名单。
我无法理解如何在CountriesController.js中实现函数getAllCountries。
我在tmp目录中使用一个本地数据库。
拜托,有人能详细了解我该怎么做吗?
另外,为了理解,请告诉我如何实现函数addNewCountries,例如updateCitiesDescription
感谢并对我的英语表示歉意)对于sails,如果你有一个函数来处理你的路线,你可以在
api/controllers/countriescocontroller
中创建它作为一种方法
对于路线:
'get /countries':'CountriesController.getAllCountries'
module.exports = {
getAllCountries: function (req, res, next){
return Country.getAllCountries(function success(countries){
//handle your success logic e.g: return res.view("countries", {data: countries});
}, function errorHandle(error){
//error handling
})
}
}
//inside your module.exports in api/models/Countries add this method
getAllCountries: function(cb, err){
Country.find({}).then(cb).catch(err);
}
国家控制器:
'get /countries':'CountriesController.getAllCountries'
module.exports = {
getAllCountries: function (req, res, next){
return Country.getAllCountries(function success(countries){
//handle your success logic e.g: return res.view("countries", {data: countries});
}, function errorHandle(error){
//error handling
})
}
}
//inside your module.exports in api/models/Countries add this method
getAllCountries: function(cb, err){
Country.find({}).then(cb).catch(err);
}
国家/地区型号:
'get /countries':'CountriesController.getAllCountries'
module.exports = {
getAllCountries: function (req, res, next){
return Country.getAllCountries(function success(countries){
//handle your success logic e.g: return res.view("countries", {data: countries});
}, function errorHandle(error){
//error handling
})
}
}
//inside your module.exports in api/models/Countries add this method
getAllCountries: function(cb, err){
Country.find({}).then(cb).catch(err);
}
总之,您可以使用控制器方法联系模型并传递成功和错误处理函数,这些函数将返回适当的视图。如果您的目的只是查看国家/地区列表,那么Sails已经涵盖了您。它提供了BlueprintAPI,您可以直接使用它来查询数据库并将响应视为JSON 例如,你可以打电话
http://localhost:1337/countries
查看数据库中的所有国家/地区。同样,您也可以直接使用API执行其他查询。查找有关它的更多信息
但是,如果您仍然希望自己查询数据库以掌握诀窍,那么到目前为止您所做的工作是正确的
在您的国家/地区控制器中,创建一个名为“getAllCountries”的新操作
您的路由基本上尝试在控制器“CountriesController”中找到一个名为“getAllCountries”的方法,并将您的请求重定向到该操作
收到调用后,只需使用waterline从数据库中获取国家列表,并将JSON返回给用户
友好的建议是,不要用复数来命名你的模特。例如,如果您试图在数据库中维护国家/地区和城市,请将模型命名为“国家/地区”和“城市”。谢谢。我明白这一点。实际上我不理解这部分的实现:return Countries.findAll({//query details},