Я делаю небольшой проект в Backbone.js, и я запускаю пакет json-server
, чтобы заполнить его некоторыми данными. Я сделал файл db.json
с данными и запустил json-server --watch db.json
, он начал работать и отлично работает на localhost:3000
. В моем Backbone приложение у меня есть это:Не удается получить данные с json-сервера
// app/javascripts/collections/resumes.js
define(['backbone', 'models/resume'], function (Backbone, Resume) {
var ResumesCollection = Backbone.Collection.extend({
model: Resume,
url: 'http://localhost:3000/resumes'
});
return ResumesCollection;
});
// app/javascripts/views/resumes/resume.js
define(['backbone', 'jquery'], function (Backbone, $) {
var ResumeView = Backbone.View.extend({
tagName: 'article',
render: function() {
this.$el.html(this.model.get("firstName"));
return this;
}
});
return ResumeView;
});
// app/javascripts/views/resumes/index.js
define(['backbone', 'views/resumes/resume'], function (Backbone, ResumeView) {
var ResumesList = Backbone.View.extend({
tagName: 'section',
initialize: function() {
this.collection.fetch();
},
render: function() {
var resumesView = this.collection.map(function (cv) {
return new ResumeView({model: cv}).render().el;
});
this.$el.html(resumesView);
return this;
}
});
return ResumeList;
});
это мой app/router.js
:
define(['backbone',
'collections/resumes',
'views/resumes/resume',
'views/resumes/index'],
function (Backbone, ResumesCollection, ResumeView, ResumeList) {
var AppRouter = Backbone.Router.extend({
routes: {
'resumes': 'showAll'
},
showAll: function() {
this.ResumeList.render();
}
});
return AppRouter;
});
и в app/javascripts/main.js
у меня есть это:
require.config({
shim: {
underscore: {
exports: '_'
},
backbone: {
deps: [
'underscore',
'jquery'
],
exports: 'Backbone'
}
},
paths: {
jquery: '../node_modules/jquery/dist/jquery',
underscore: '../node_modules/underscore/underscore',
backbone: '../node_modules/backbone/backbone'
}
});
require(['backbone',
'jquery',
'router'
], function (Backbone, $, AppRouter) {
var Router = new AppRouter();
Backbone.history.start({
pushState: true,
root: '/'
});
});
Также я использую Глоток запустить сервер разработки на localhost:8080
через gulp-connect
и gulp-livereload
. Но когда я перехожу к localhost:8080/resumes
, он возвращает мне Cannot GET /resumes
, хотя ошибок в консоли нет. Что я делаю неправильно? +
Спасибо! проблема в том, что я фактически не понимаю, как я могу управлять получением данных из json-сервера, работающим на 'localhost: 3000', перед моим интерфейсом, который работает на' localhost: 8080'. Также я продолжу мой вопрос с моего маршрутизатора – AlexNikolaev94
@ AlexNikolaev94 Я обновил свой ответ после тестирования json-сервера, и он работает из коробки, поэтому нам понадобится дополнительная информация, чтобы помочь. –