그냥 ember.js를 배우고 ember-app-kit으로 앱을 만들기 시작했습니다.ember-app-kit - 외부 파일의 데이터로 API 스텁하기
제공된 API 스텁을 사용하여 API를 스텁 처리하고 있지만 외부 json 파일을 "고정물 데이터"로 사용하기로했습니다. 이 결정의 이유 - 필자는 동일한 json 파일을 사용하여 엠버 응용 프로그램과 레일 API 백 엔드를 모두 테스트합니다. Here's 내 json 파일의 예가있는 요점.
그래서 내 api-stub/routes.js
는 현재 다음과 같습니다
일하고 이행 그래서
var path = require('path');
var fs = require('fs');
// going to sibling directory
var fixtureDir = path.resolve(__dirname, '../..', 'lightfixtures')
module.exports = function (server) {
// Create an API namespace, so that the root does not
// have to be repeated for each end point.
server.namespace('/api', function() {
var locationsProtocol = JSON.parse(fs.readFileSync(fixtureDir + '/locations.json'));
var roomsProtocol = JSON.parse(fs.readFileSync(fixtureDir + '/rooms.json'));
// stub location list request
server.get(locationsProtocol[0].request.url, function (req, res) {
res.send(locationsProtocol[0].response.data);
});
// stub individual location request
server.get(locationsProtocol[1].request.url, function (req, res) {
res.send(locationsProtocol[1].response.data);
});
// stub room list request
server.get(roomsProtocol[0].request.url, function (req, res) {
res.send(roomsProtocol[0].response.data);
});
// stub individual room request
server.get(roomsProtocol[1].request.url, function (req, res) {
res.send(roomsProtocol[1].response.data);
});
});
};
, 파일을 읽고 적절한 요청을 스텁에 대한 그것의 부분을 구문 분석하는 동안 잘 작동 -하지만 매우 중복 보인다. 나는 그것을 건조하고 쉽게 더 스텁이 같은 추가 할 수 있도록, 모든 요소에 대한 스텁을 구문 분석 JSON을 반복하고 생성 할 수 싶습니다
를 원함 이행
...
var locationsProtocol = JSON.parse(fs.readFileSync(fixtureDir + '/locations.json'));
var roomsProtocol = JSON.parse(fs.readFileSync(fixtureDir + '/rooms.json'));
function respondToEach(json) {
for (var i = 0; i < json.length; i++) {
server.get(json[i].request.url, function (req, res) {
res.send(json[i].response.data);
});
}
}
respondToEach(locationsProtocol);
respondToEach(roomsProtocol);
...
을하지만 실패 ! Ember가 기본 오류를 발생시키고 네트워크 창에서 내부 서버 오류 (500)를 발생시키고 응답 섹션에 "TypeError : 정의되지 않은 속성 '응답'을 읽을 수 없음 (이 표시된 행은이 경우입니다.) - res.send(json[i].response.data);
나는 혼란 스럽다 - 구현과 "원하는"구현이 정확히 같은 출력을 내야한다고 생각하지만, 그렇지 않다. 누군가가 내가 을 이해할 수 있도록 도와 줄 수 있는가? (예 : 리팩터링 된 버전이 어떻게 다른지) 문제를 어떻게 해결할 수 있습니까?
당신이 감사 감사 감사 폐쇄 문제를 해결됩니다! 나는 오늘 무언가를 배웠다. :) – apprenticeDev