'json-server'실전.
db.json
파일을 만드는 것입니다.{
"posts": [
{ "id": 1, "title": "json-server", "author": "typicode" }
],
"comments": [
{ "id": 1, "body": "some comment", "postId": 1 }
],
"profile": { "name": "typicode" }
}
그리고 명령줄에서 실행
json-server --watch db.json
하면 http://localhost:3000
에서 RESTful 서버를 얻어 posts
, comments
, profile
세 자원을 삭제할 수 있습니다.많은 강좌들이 json-server
의 명령행 사용을 설명했고 프로젝트Readme 자체도 상세하게 설명했기 때문에 여기서 더 이상 중복되지 않는다.더 많은 경우 우리 서버가 RESTful을 엄격하게 따르지 않거나 일부 인터페이스에 특별한 요구가 있을 수 있습니다. 이런 경우 명령행json-server
만 사용하면 일반적으로 해결할 수 없습니다.다행히도 json-server
모듈 버전(nodejs에서 사용)도 제공합니다. 이것도 본고의 목적입니다. json-server
모듈을 어떻게 사용하여 요구에 부합되는 위조 서버를 신속하게 만드는지 토론하고자 합니다.#1, json-server 모듈로 RESTful 서버 만들기
편집
server.js
, 추가 작성이 필요 없음db.json
:const jsonServer = require('json-server')
let server = jsonServer.create()
let middlewares = jsonServer.defaults()
//
let db = {
users: [
{username: 'Monica', id: 1},
{username: 'Ross', id: 2}
]
}
// json , :jsonServer.router('db.json')
let router = jsonServer.router(db)
// , logger, static, cors( ) no-cache( )
server.use(middlewares)
// RESTful
server.use(router)
// 3000 ,
server.listen(3000, function () {
console.log('JSON Server is running')
})
실행
node server.js
;그리고 curl localhost:3000/users
로 검증하면 다음과 같이 될 것이다.[
{
"username": "Monica",
"id": 1
},
{
"username": "Ross",
"id": 2
}
]
#2, 비 RESTful 인터페이스 추가
만약 내가 전통적인login 인터페이스, 비RESTful 자원을 추가하고 싶다면 어떻게 해야 합니까?
json-server
실제로는 express 서버이기 때문에 우리는 열기 전에 인터페이스를 추가할 수 있다.server.post('/login', function (req, res) {
res.jsonp({username: 'Admin', token: '6666'})
})
// 、
// ...
#3, 중간부품 추가
중간부품을 추가할 수 있는 모든 인터페이스에 대한 권한 검증이 필요합니다.
server.use(function (req, res, next) {
// isAuthorized
if (isAuthorized(req)) {
// next(),
next()
} else {
res.sendStatus(401)
}
})
총결산
json-server
모듈은 사실 강화판의 express이다.전자 특유의 기능과 express 자체의api와 결합하면 당신의 요구에 부합되는 위조 서버를 쉽게 만들어서 당신의 전단 개발을 가속화할 수 있습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.