我对Node还很陌生。我发现了Sails.js。我认为它是基于WebSocket的,它似乎非常适合构建实时应用程序。我想知道Sails是否可以用于实现REST架构,因为它使用WebSocket?如果是,怎么做?
可以。SailsJS允许您轻松地构建一个RESTful API,基本上不需要任何努力。此外,默认情况下,websocket(通过socket.io)集成到视图和api中。
要从头开始创建一个完全RESTful的应用程序,实际上不需要JS。尝试:
sails new testapp
cd testapp
sails generate model user
sails generate controller user
cd <main root>
sails lift
CRUD(创建、读取、更新、删除)操作已经为您创建。没有代码!
您可以通过执行以下操作在浏览器中创建用户:HTTPPOST(使用PostMan等工具)到HTTP://:1337/user/create
{"firstName":"Bob","姓氏":"Jones"}
接下来,执行GET以查看新用户:HTTP GET HTTP://:1337/user/
仅供参考-Sails JS使用默认的基于磁盘的数据库来让你进入
完成。
sails new testapp
cd testapp
sails generate api apiName
控制器
create: function (req, res) {
var payload = {
name:req.body.name,
price:req.body.price,
category:req.body.category,
author:req.body.author,
description:req.body.description
};
Book.create(payload).exec(function(err){
if(err){
res.status(500).json({'error':'something is not right'})
}else{
res.status(200).json({'success':true, 'result':payload, 'message':'Book Created success'})
}
});
},
readone: async function (req, res) {
var id = req.params.id;
var fff = await Book.find(id);
if(fff.length == 0){
res.status(500).json({'error':'No record found from this ID'})
}else{
res.status(200).json({'success':true, 'result':fff, 'message':'Record found'})
}
},
型号
attributes: {
id: { type: 'number', autoIncrement: true },
name: { type: 'string', required: true, },
price: { type: 'number', required: true, },
category: { type: 'string', required: true, },
author: { type: 'string' },
description: { type: 'string' },
},
路由
'post /newbook': 'BookController.create',
'get /book/:id': 'BookController.readone',