Não é possível obter o erro / Nodejs
estou a usar o tutorial encontrado aqui: http://addyosmani.github.io/backbone-fundamentals/#create-a-simple-web-server e acrescentou o seguinte código.
// Module dependencies.
var application_root = __dirname,
express = require( 'express' ), //Web framework
path = require( 'path' ), //Utilities for dealing with file paths
mongoose = require( 'mongoose' ); //MongoDB integration
//Create server
var app = express();
// Configure server
app.configure( function() {
//parses request body and populates request.body
app.use( express.bodyParser() );
//checks request.body for HTTP method overrides
app.use( express.methodOverride() );
//perform route lookup based on url and HTTP method
app.use( app.router );
//Where to serve static content
app.use( express.static( path.join( application_root, 'site') ) );
//Show all errors in development
app.use( express.errorHandler({ dumpExceptions: true, showStack: true }));
});
//Start server
var port = 5000;
app.listen( port, function() {
console.log( 'Express server listening on port %d in %s mode', port, app.settings.env );
});
Depois de iniciar o servidor com node server.js
estou a ter um erro a dizer Cannot GET /
quando acedi a localhost:5000
E pergunto-me se alguém sabia muito sobre este erro como o Express e o Node são novos para mim?
3 answers
Acho que está a perder as suas rotas, precisa de definir pelo menos uma rota, por exemplo '/' para indexar.
Por exemplo
app.get('/', function (req, res) {
res.render('index', {});
});
node_modules/
.bin/
express/
mongoose/
path/
site/
css/
img/
js/
index.html
package.json
Por exemplo na minha máquina, comecei a ter o mesmo erro que tu quando renomeei a minha pasta "site" como outra coisa. Sugiro que verifique se tem o índice.página html dentro de uma pasta" site " que fica no mesmo caminho como seu servidor.ficheiro js.
Espero que isso ajude!node server.js
node_modules/
app/
index.html
server.js
Depois de imprimir o caminho __dirname
, percebi que o caminho __dirname
era onde o meu servidor estava a correr (app/
).
Se o seu ficheiro server.js
estiver na mesma pasta que os ficheiros que está a tentar desenhar, então
app.use( express.static( path.join( application_root, 'site') ) );
Deve ser realmente
app.use(express.static(application_root));
O único tempo que você gostaria de usar a sintaxe original que você tinha seria se você tivesse uma árvore de pastas como assim:
app/
index.html
node_modules
server.js
Onde index.html
está na pasta app/
, enquanto server.js
está na pasta raiz (ou seja, o mesmo nível que a pasta app/
).
Nota lateral: em vez de chamar o utilitário path
, pode usar a sintaxe application_root + 'site'
para se juntar a um caminho.
Globalmente, o seu código pode parecer:
// Module dependencies.
var application_root = __dirname,
express = require( 'express' ), //Web framework
mongoose = require( 'mongoose' ); //MongoDB integration
//Create server
var app = express();
// Configure server
app.configure( function() {
//Don't change anything here...
//Where to serve static content
app.use( express.static( application_root ) );
//Nothing changes here either...
});
//Start server --- No changes made here
var port = 5000;
app.listen( port, function() {
console.log( 'Express server listening on port %d in %s mode', port, app.settings.env );
});