라이브러리는 CRUD (작성, 읽기, 업데이트, 삭제) 작업을 수행하는 간단하고 직관적 인 방법을 제공하고 약속 기반 인터페이스를 지원합니다. 즉, 쿼리가 성공할 때만 기능이 호출됩니다.
기사에서 블로그 JSON API를 작성하는 예에서 볼 수 있듯이 Bookshelf.js는 Express.js와 함께 API를 구축하는 데 사용될 수 있으며 기본 데이터베이스 테이블 구조를 캡슐화하여 일반 JavaScript를 노출시키는 데 사용할 수 있습니다. 쿼리 객체. -
최근 몇 년 동안 JavaScript가 인기를 얻었습니다. 수년에 걸쳐 사람들은이 인기있는 언어를 서버 측에 여러 번 적용하려고 시도했습니다. 가장 성공적인 시도 중 하나는 Node.js였습니다. 이는 서버 응용 프로그램을 빠르게 작성하는 방법으로 커뮤니티에 추천되었습니다. 노드의 판매 지점은 성능 및 개발 시간 측면에서 속도입니다. 이러한 인기를 받아 커뮤니티는 계속 성장하고 있으며이 프로젝트는 더 많은 기여자의 혜택을 받아 Express.js와 같은 고품질 모듈을 만듭니다. -
그래서 사람들은 노드를 사용하여 완전한 백엔드를 구축하기 시작했습니다. 백엔드 시스템이해야 할 가장 중요한 것 중 하나는 데이터베이스와 효과적으로 통신하는 것입니다. 객체 관계 매핑 (ORM) 소프트웨어가 들어오는 곳입니다. 종종 개발자는 데이터베이스와 통신하기 위해 사용중인 프로그래밍 언어와 SQL에 능숙해야합니다. ORM은 개발자가 선택한 프로그래밍 언어의 객체를 사용하여 데이터베이스와 상호 작용할 수 있도록하여 개발 프로세스를 단순화합니다. 이 기사는 ORM을 소개하고 Bookshelf.js Orm에 특별한주의를 기울입니다.
orm 란? -
Wikipedia는 객체 관계 매핑을 다음과 같이 정의합니다
객체 지향 프로그래밍 언어에서 호환되지 않는 유형 시스템간에 데이터를 변환하기위한 프로그래밍 기술. 이것은 실제로 프로그래밍 언어로 내부적으로 사용할 수있는 "가상 객체 데이터베이스"를 만듭니다.
이 예에서는 프로그래밍 언어가 JavaScript이고 호환되지 않는 시스템은 MySQL과 같은 관계형 데이터베이스 시스템입니다. 이는 ORM 라이브러리가 기존의 JavaScript 객체와 상호 작용하는 것과 같은 방식으로 데이터베이스와 통신 할 수 있어야 함을 의미합니다. Node.js에는 많은 ORM 라이브러리가 있으며 인기있는 라이브러리에는 persistence.js, sequelize.js 및 bookshelf.js가 포함됩니다. 이 기사는 Bookshelf.js를 소개합니다.
Bookshelf.js 예제
데이터베이스 상호 작용은 일반적으로 4 개의 CRUD 작업과 같은 4 개의 CRUD 작업을 중심으로 회전합니다. Bookshelf.js는 이러한 작업을 수행하는 직관적 인 방법을 제공합니다. 예를 들어 다음과 같은 작업을 작성합니다.
Post가 해당 데이터베이스 테이블이있는 모델이며 이름은 데이터베이스 테이블의 열에 해당하는 속성이라고합니다.
마찬가지로 읽기 작업은 다음과 같습니다new Post({name: 'New Article'}).save().then(function(model) {
// ...
});
로그인 후 복사
로그인 후 복사
코드의 전화를주십시오. Bookshelf.js는 약속 기반 인터페이스를 지원합니다.이 경우 익명 함수가 전달 된 다음 쿼리가 성공할 때만 호출됩니다. 모델은 사용자와 관련된 속성에 액세스하는 데 사용할 수있는 생성 된 JavaScript 객체입니다. 이 예에서는 model.get ( 'gender')가 사용자의 성별을 반환합니다.
<🎜 🎜> <<> Bookshelf.js 및 Express.js <🎜 🎜>
가있는 API를 빌드하십시오
보다 완전한 예를 들어, 다음 리소스 JSON API가있는 블로그를 작성하도록 위임되었다고 가정 해 봅시다 : <🎜 🎜>
그리고 클라이언트는 이미 다음 표를 가지고 있습니다.
<,> 우선, 우리는 Express.js 환경을 설정하려면 package.json을 사용해야합니다.
책장은 그것에 의존하기 때문에 Knex 쿼리 빌더가 필요하며 약속을 처리하려면 Bluebird가 필요합니다. app.js 구조는 다음과 같습니다
우리의 MySQL 데이터베이스를 블로그라고합니다. 기사 모델을 정의하고 기사 테이블에 바인딩해야합니다. 우리는 // {모델 정의 코드를 여기} :
대체합니다.
// select * from `user` where `email` = 'user@mail.com'
new User({email: 'user@mail.com'})
.fetch()
.then(function(model) {
console.log(model.get('gender'));
});
로그인 후 복사
로그인 후 복사
의심 할 여지없이 이것은 Bookshelf.js에서 모델을 정의하는 데 필요한 모든 것입니다. 이제이 모델을 사용하여 API의 데이터베이스를 쿼리 할 수 있습니다. 먼저, get /api /article 방법은 데이터베이스의 모든 기사를 반환해야합니다.
Bookshelf.js의 fetchall은 데이터베이스 테이블의 모든 항목을 가져오고 오류가 발생한 경우에만 캐치가 수행됩니다 (문서에 더 많은 모델 메소드가 있습니다).
<🎜 🎜> <<> 결론 <code>GET /api/article
GET /api/article/:article_id
POST /api/article</code>
로그인 후 복사
로그인 후 복사
create table article (
id int not null primary key,
title varchar(100) null,
body text null,
author varchar(100) null
);
로그인 후 복사
<<> Bookshelf.js 시작하기 faq
bookshelf.js 란 무엇이며 왜 그것을 사용해야합니까? {
"name": "article_api",
"description": "expose articles via JSON",
"version": "0.0.1",
"private": true,
"dependencies": {
"bluebird": "^2.1.3",
"body-parser": "^1.3.1",
"express": "4.4.3",
"mysql": "*",
"knex": "*",
"bookshelf": "*"
}
}
로그인 후 복사
<..> bookshelf.js는 SQL 데이터베이스와 상호 작용할 수있는 간단하고 우아한 API를 제공하는 JavaScript 라이브러리입니다. 거래, 긴급/목이 긴급한 관계 로딩, 다형성 연관성 등을 지원합니다. Bookshelf.js를 사용하는 주요 장점은 단순성과 유연성입니다. 이를 통해 더 많은 작업을 수행하면서 더 적은 코드를 작성하여 개발 프로세스를보다 빠르고 효율적으로 만들 수 있습니다.
Bookshelf.js를 설치하는 방법?
Bookshelf.js를 설치하려면 시스템에 node.js 및 npm을 설치해야합니다. 설치가 완료되면 터미널에서 명령 // 当应用程序启动时
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var Promise = require('bluebird');
var dbConfig = {
client: 'mysql',
connection: {
host: 'localhost',
user: 'root',
password: 'your_password',
database: 'blog',
charset: 'utf8'
}
};
var knex = require('knex')(dbConfig);
var bookshelf = require('bookshelf')(knex);
app.set('bookshelf', bookshelf);
var allowCrossDomain = function(req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
next();
};
app.use(allowCrossDomain);
// 解析 application/x-www-form-urlencoded
app.use(bodyParser.urlencoded());
// 解析 application/json
app.use(bodyParser.json());
// 解析 application/vnd.api+json 为 json
app.use(bodyParser.json({type: 'application/vnd.api+json'}));
// 在其他地方,使用 bookshelf 客户端:
var bookshelf = app.get('bookshelf');
// {我们的模型定义代码在这里}
app.listen(3000, function() {
console.log('Express started at port 3000');
});
로그인 후 복사
를 실행하여 Bookshelf.js를 설치할 수 있습니다. 여기에는 Knex.js (SQL 쿼리 빌더) 및 SQLITE3 (가벼운 디스크 기반 데이터베이스)뿐만 아니라 BookShelf.js와 Sugally Bookshelf.js가 설치됩니다. Bookshelf.js를 내 데이터베이스에 연결하는 방법은 무엇입니까?
Bookshelf.js를 데이터베이스에 연결하려면 먼저 데이터베이스 구성으로 Knex.js를 초기화해야합니다. 그런 다음이 초기화 된 Knex 인스턴스를 Bookshelf.js로 전달합니다. 기본 예는 다음과 같습니다.
Bookshelf.js에서 모델을 정의하는 방법은 무엇입니까?
Bookshelf.js에서 는 Bookshelf.js에서 제공하는 기본 클래스 모델을 확장 하여이 모델을 정의합니다. 사용자 모델을 정의하는 예는 다음과 같습니다.
new Post({name: 'New Article'}).save().then(function(model) {
// ...
});
로그인 후 복사
로그인 후 복사
Bookshelf.js를 사용하여 데이터베이스에서 데이터를 추출하는 방법은 무엇입니까?
Bookshelf.js를 사용하여 데이터베이스에서 데이터를 추출하는 것은 매우 간단합니다. 모델에서 제공 한 페치 방법을 사용할 수 있습니다. 예는 다음과 같습니다.
Bookshelf.js를 사용하여 데이터를 데이터베이스에 저장하는 방법은 무엇입니까?
Bookshelf.js를 사용하여 데이터를 데이터베이스에 저장하는 것도 쉽습니다. 모델에서 제공 한 저장 메소드를 사용할 수 있습니다. 예는 다음과 같습니다.
Bookshelf.js를 사용하여 데이터베이스에서 데이터를 업데이트하는 방법은 무엇입니까? // select * from `user` where `email` = 'user@mail.com'
new User({email: 'user@mail.com'})
.fetch()
.then(function(model) {
console.log(model.get('gender'));
});
로그인 후 복사
로그인 후 복사
저장 메소드를 사용하여 데이터베이스의 데이터를 업데이트 할 수 있습니다. 먼저 모델을 추출한 다음 새 데이터로 저장을 호출하면됩니다. 예는 다음과 같습니다.
Bookshelf.js를 사용하여 데이터베이스에서 데이터를 삭제하는 방법은 무엇입니까?
모델에서 제공 한 파괴 방법을 사용하여 데이터를 데이터베이스에서 삭제할 수 있습니다. 예는 다음과 같습니다.
Bookshelf.js에서 관계를 처리하는 방법?
<.> Bookshelf.js는 Hasone, Hasmany, Solgsto 및 Solgstomany와 같은 모델 간의 관계를 다루는 몇 가지 방법을 제공합니다. 다음은 여러 게시물 모델이있는 사용자 모델의 예입니다.
<code>GET /api/article
GET /api/article/:article_id
POST /api/article</code>
로그인 후 복사
로그인 후 복사
bookshelf.js에서 거래를 처리하는 방법은 무엇입니까?
Bookshelf.js의 트랜잭션은 Knex.js에서 제공하는 트랜잭션 방법을 사용하여 처리 할 수 있습니다. 예는 다음과 같습니다.
위의 코드 예제의 일부 세부 사항은 특정 데이터베이스 및 환경에 따라 조정해야 할 수도 있습니다. 또한 최신 정보와보다 자세한 지침은 Bookshelf.js의 공식 문서를 참조하는 것이 좋습니다.
위 내용은 Bookshelf.js로 시작하는 것의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!