2013-07-29 4 views
1

У меня problemas с Backbone.history.start({pushState: true}); когда Активизированныйnodejs ExpressJs BackboneJs PushState

Я использую магистральный маршрутизатор 'example/:id':'test' и браузер возвращает мне ошибку

GET MyHost: 1337/пример/JS/просмотров /test.js 404 (не найдено)

Я хочу повернуть со спинкой, например myhost:1337/example/test, без необходимости запрашивать nodejs.

си, я не знаю, почему,

Может быть мой сервер Nodejs? Или Мог ли мой код, что он плохо написан? Заранее спасибо

МОЕГО код сервера

//var http = require('http'); 
var path = require('path'), 
    express = require('express'), 
    routes = require('./routes/index'), 
    http = require('http'), 
    app = require('express')(); 

app.configure(function(){ 
    //app.set('view options',{layout: false }); 
    app.set('port', process.env.PORT || 1337); 
    app.use(express.bodyParser()), 
    app.use(express.static(path.join(__dirname, 'public'))); 
    app.use(app.router); // you need this line so the .get etc. routes are run and if an error within, then the error is parsed to the ned middleware (your error reporter) 
    app.use(function(err, req, res, next) { 
     if(!err) return next(); // you also need this line 
     console.log("error!!!"); 
     res.send("error!!!"); 
    }); 
}); 

app.get('*',function(req,res){ 
    res.setHeader('content-type', 'text/javascript'); 
    res.header("Access-Control-Allow-Origin", "*"); 
    res.header("Access-Control-Allow-Headers", "X-Requested-With"); 
    res.redirect('http://localhost:1337#'+req.url); 
}); 


http.createServer(app).listen(app.get('port'), function() { 
    console.log("Express server listening on port " + app.get('port')); 
}); 

ответ

0

Это что-то с сервером. Я готов поспорить, не удерживая клавишу переключения вниз, когда вы набрали свой маршрут, так что у вас есть что-то вроде этого на сервере

app.get('example?:id':'test', function() {}); 

Когда вы должны иметь:

app.get('example/:id':'test', function() {}); 

Этот блок:

app.post('/addPlace?:?',routes.addPlace); 
app.get('/searchPlace?:q',routes.searchPlace); 
app.post('/showPlace',routes.showPlace); 
app.get('/showPlaceById?:id',routes.showPlaceById) 
app.post('/deletePlace?:?',routes.deletePlace); 

Посмотреть ? «S во всем мире? Это должно быть действительно:

app.post('/addPlace',routes.addPlace); 
app.get('/searchPlace/:q',routes.searchPlace); 
app.post('/showPlace',routes.showPlace); 
app.get('/showPlaceById/:id',routes.showPlaceById) 
app.post('/deletePlace',routes.deletePlace); 

Если вы изменяете, что /showPlaceById/:id будет вернуть то, что вы ожидаете.

+0

У меня есть этот пример /: id ':' test 'на самом деле. Но я не работаю. Браузер возвращает мне ошибку – oscar

+0

@oscar Это ваш код для магистрального маршрутизатора. Каков ваш код на вашем сервере node.js? –

+0

Я думаю, что nodejs обнаруживают URL-адрес и его поиск для поиска файлов. Я не уверен, что это – oscar

Смежные вопросы