首页 >> 导购 >> 如何采用Feathers.js和SQLite构建REST API

如何采用Feathers.js和SQLite构建REST API

2025-11-01 12:16:36

加载和启动时错误历史记录。此时,维修服务调试在3030尾端口,同时一个moviedb.sqlitePDF时会创设在单项的根目录里。

6.创设维修服务

维修服务是解决问题某些作法的具体来说或类的示例。维修服务为与任何样本交互缺少一致的、独立于协商的端口。在Feathers.js里,你只只无需调试一条指令,就能为创设维修服务做到一切准备。采用如下指令来创设一个movie应用领域:

解码

feathers generate service

上面的指令将高亮你为你的维修服务同样配置。你的同样无论如何如一个大的网页右图:

这里,你为你的movie单项请注意同样了ORM、维修服务名、IPvURL,并在movie单项IPv上落成了身份正确性。一旦这些同样完成,该指令将在src/servicePDF夹里作用于一个大的PDF夹在结构上。

在你的movie.hookPDF里,Feathers填充了一个大的编码图片,必要在允诺通过这个IPv传递到movie service之前,无需确认服务器登录时发送的服务器采访令牌。

解码

before: {

all: []

find: [ authenticate('jwt') ]

get: [ authenticate('jwt') ],

create: [ hashPassword('password') ],

update: [ hashPassword('password'), authenticate('jwt') ],

patch: [ hashPassword('password'), authenticate('jwt') ],

remove: [ authenticate('jwt') ]

},

接着,采用如下指令创设一个出租维修服务

解码

feathers generate service

上面对着movie service执行了有所不同的操作,但是这次作用于了完全有所不同的PDF夹名和PDF,如下右图:

它也时会在所有的IPv里调用JWT authenticate('jwt')作法。此外,该指令将为你几天后创设的维修服务作用于相应的模型,并采用一些范本PDF,如下右图:

7.创设样本库请注意

创设了维修服务和模型后,修正模型的本体以获得喜剧片和出租请注意所只需的本体。对于喜剧片模型,将以下本体填充到本体里。

解码

title: {

type: DataTypes.STRING,

allowNull: false,

},

producer: {

type: DataTypes.STRING,

allowNull: false,

},

imageURL: {

type: DataTypes.STRING,

allowNull: false,

},

createdAt: { type: DataTypes.DATE, defaultValue: Date.now },

updatedAt: { type: DataTypes.DATE, defaultValue: Date.now },

然后,在出租模型里,填充如下本体:

解码

quantity: {

type: DataTypes.INTEGER,

allowNull: false,

},

createdAt: { type: DataTypes.DATE, defaultValue: Date.now },

updatedAt: { type: DataTypes.DATE, defaultValue: Date.now },

我们只无需在服务器、喜剧片、出租模型里创设关联,让我们转至下一节。

8.样本关连

样本库关连是采用连结语句检索样本时在请注意错综有用转变成的关联。关连通常采用ER图来划。我们的应用领域有一张服务器(user)请注意、喜剧片(movie)请注意、出租(rental)请注意。喜剧片归出租新公司所有,服务器拥有出租新公司。在每个样本库里,维护此样本的最直接的作法是在它们错综有用构建关连,将请注意id保存为与它们系统性的请注意里的外键。让我们继续创设三个请注意错综有用的关连。在models/user.models.js里,找到如下评注的所在位置:

解码

// Define associations here

// See

并填充一个大的编码图片

解码

const { rentals } = models;

users.hasMany(rentals);

在编码图片里,你创设了一个服务器请注意与出租请注意的一对多关连。这并不一定一个服务器可有多个出租。

最后,我们可以填充如下编码到models/movie.model.jsPDF里:

解码

const { rentals, movie } = models;

movie.belongsToMany(rentals, { through: 'MovieRendtals' });

在上面的编码图片里,我们在喜剧片请注意与出租请注意错综有用创设了一个多对多关连,这并不一定一个喜剧片可以有多个出租。在多对多关连里,创设一个连结请注意来跟踪两个请注意的id,在本例里为MovieRentals。就此,填充如下编码图片到models/rentals.model.jsPDF里:

解码

const { users, movie } = models;

rentals.belongsTo(users);

rentals.belongsToMany(movie, { through: 'MovieRentals' });

以前,请注意错综有用互相有了关连。你可以在创设样本或从任何维修服务获取样本时将样本加载到请注意里。这让我们转至到了Feathers.js里的钉变量节目时会。

9.填充自定钩

钉是插件化的里间件变量,可以特许在维修服务作法前,维修服务作法后,或者作法报错时。你可以特许一个钉变量或者创设一个钉变量链来创设有用的工作流。你可以创设一个钉来加载与每个请注意系统性的样本。在你的service/rentalsPDF夹里,创设get-related.jsPDF并把如下编码图片撰写进PDF里:

解码

module.exports = function (options = {}) {

return async (context) => {

const sequelize = context.app.get('sequelizeClient');

const { users, movie } = sequelize.models;

context.params.sequelize = {

include: [{ model: users }, { model: movie }],

raw: false,

};

return context;

};

};

在上述编码图片里,是告诉Feathers.js当一部喜剧片被出租时记载服务器和喜剧片模型的样本。以前采用如下的编码图片更新你的service/rentals/rental.hooks.jsPDF。修正before具体来说内部的编码。

解码

all: [authenticate('jwt')],

find: [getRelated()],

get: [getRelated()],

create: [getRelated()],

update: [],

patch: [],

remove: []

10.应用领域试验中

以前让我们用Insomnia试验中用户界面。我们从服务器IPv开始。

(1)创设服务器

在/userIPv下创设服务器

(2)正确性服务器

在/authenticationIPv正确性服务器

(3)创设一部喜剧片

在/movieIPv创设喜剧片

(4)出租一部喜剧片

在/rentalsIPv里出租一部喜剧片。你将时会在此IPv里均须userId,movieId和quantity字段。

以前继续试验中每个IPv上的其他允诺作法,如GET、UPDATE和DELETE。

11.连结Arctype

将样本库连结到Arctype,以查看用户界面里创设的请注意和样本。你可以通过以下步骤连结到Arctype:

(1)调试Arctyp

(2)点击SQLite选项卡

(3)点击Choose SQLite File按键

(4)导航到单项PDF夹并同样moviedb.sqlitePDF

(5)试验中连结并保存配置

一旦样本库失败连结Arctype,你将时会看着如下网页右图的users请注意,movies请注意,rentals请注意,MovieRentals请注意。

此时,你的样本库就现在失败连结上了Arctype。你可以点击每一张请注意去看驱动器的样本。

12.结语

在本入门里,通过构建一个科学实验用户界面,你现在了解了Feathers.js。你现在学习了如何增设feather .js用户界面、创设维修服务、解决问题身份正确性/许可权、创设自定钉以及连结到Arctype。既然你现在掌握了这些学问,那么你打算如何在下一个单项里采用Feathers.js ?你甚至可以通过fork或克隆GitHub库来为这个单项填充一些额外的特性性。

原文关键字:

译者讲解

卢鑫旺,51CTO的社区编辑,半路出家的九零后系统设计开发者。做到过后尾端主页,撰写过业务端口,搞过爬虫,研究过JS,有幸保持联系Golang,参与微维修服务的系统转型。目前主撰写Java,负责新公司可订制化低编码跨平台的样本引擎层设计系统设计开发工作。

北京看白癜风去哪个医院
海南男科挂号
贵州癫痫治疗方法有什么
成都试管婴儿医院哪里比较好
四川包皮过长治疗哪家好
咳嗽有痰吃什么药
全民健康网症状库
计划生育科
婴儿厌食
慢性支气管炎长期咳嗽怎么办?

上一篇: 数据迁移:在平台密切关系移动数据的最佳实践

下一篇: iOS 15.5系统会“时间与地点”偷跑大量手机流量

相关阅读
七彩虹为新品预热:或为新一代iGame两大一体机

七彩虹是我国都曾的硬件制造公司,都有是个人急电脑愈来愈是被选为愈来愈有嘴里的香饽饽。而七彩虹近年来除了在个人急电脑消费市场有所名望之外,也将精力改装成到其他的领域之中的,比如说RAM、SSD、书

2025-11-01 00:16:36
Reno8 Pro+快歌影像,游戏体验会如何呢?

好多人都知道绿厂的Reno系列iPhone是女孩子专属,其实我看毕竟,我真是男生用也挺优异的。 拿最近发布的OPPO Reno8 Pro+来知道吧,拍到美颜啥的就不知道了,毕竟也来

2025-11-01 00:16:36
手绘学习?零基础手绘学习引论!

绘示意图进修?零基础性绘示意图进修教程!什么是凹凸?凹凸是一种画作术语,是根据物理学、光学、数学法则,特别是投影解析几何的法则运用到画作中来的工程技术画法理论模型。其中有一点凹凸、零点凹凸、三点

2025-11-01 00:16:36
毕业11集||同学,你好!同学,再见!

随着大学最终一场应考结束 我们再次次迎来毕业季 虽然迎来送往很多次 还是舍得你们离开 可能早已别过 难再次见 但是 班上 看著你们将学士

2025-11-01 00:16:36
上海市印发促进绿色低碳产业发展、培育“元银河系”新赛道、促进智能终端产业高质量发展等行动方案

融市场业务,趋同成轿车零钢制材、施工商技术等于是又所制为造里面小企业人口稠密绝对优势。3.极致能效。倡议课题用能企业应用弹药创新的性和企业推展,供电企业减缓克隆推展稍低煤耗电站应用;石立体化扰

2025-11-01 00:16:36