Erreur: Pas de défaut moteur a été spécifié et aucune extension n'est prévue

Je suis en train de travailler à travers la mise en place d'un serveur http à l'aide de node.js et le moteur. Cependant, je continue à courir dans les questions que j'ai peu d'informations sur la façon de résoudre j'apprécierais un peu d'aide à la résolution de cette s'il vous plaît.

Error: No default engine was specified and no extension was provided. 
at new View (...\node_modules\express\lib\view.js:41:42) 
at Function.app.render (...\node_modules\express\lib\application.js:484:12) 
at ServerResponse.res.render (...\node_modules\express\lib\response.js:783:7) 
at Layer.handle (...\app.js:123:7) 
at trim_prefix (...\node_modules\express\lib\router\index.js:225:17) 
at c (...\node_modules\express\lib\router\index.js:198:9) 
at Function.proto.process_params (...\node_modules\express\lib\router\index.js:253:12) 
at next (...\node_modules\express\lib\router\index.js:189:19) 
at next (...\node_modules\express\lib\router\index.js:202:7) 
at next (...\node_modules\express\lib\router\index.js:166:38)

Ci-dessous est ce que j'ai mis en place pour le démarrage de ce moteur.

var http = require('http');  
var module = require("module")
var logger = require('morgan');
var express = require('express');
var app =  module.exports = express();
var silent = 'test' == process.env.NODE_ENV;
var httpServer = http.createServer(app);  //app middleware
app.enable('strict routing');
//app.all('*', function(req, res, next)/*** CORS support.*/
//{
//  if (!req.get('Origin')) return next();//use "*" here to accept any origin
//  res.set('Access-Control-Allow-Origin', 'http://localhost:3000');
//  res.set('Access-Control-Allow-Methods', 'GET, POST');
//  res.set('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type');
//  res.set('Access-Control-Allow-Max-Age', 3600);
//  if ('OPTIONS' == req.method) return res.send(200);
//  next();
//});
app.set('views', __dirname + '/views'); //general config
app.set('view engine', 'html');
app.get('/404', function(req, res, next){
next();//trigger a 404 since no other middleware will match /404 after this one, and we're not responding here
});
app.get('/403', function(req, res, next){//trigger a 403 error
var err = new Error('not allowed!');
err.status = 403;
next(err);
});
app.get('/500', function(req, res, next){//trigger a generic (500) error
next(new Error('keyboard cat!'));
});
app.use(express.static(__dirname + '/public')); 
//error handlers
app.use(logErrors);
app.use(clientErrorHandler);
app.use(errorHandler);  
//middleware with an arity of 4 are considered error handling middleware. When you next(err)
//it will be passed through the defined middleware in order, but ONLY those with an arity of 4, ignoring regular middleware.
function clientErrorHandler(err, req, res, next) {
if (req.xhr) {//whatever you want here, feel free to populate properties on `err` to treat it differently in here.
res.send(err.status || 500, { error: err.message });
} 
else 
{ next(err);}
};
//create an error with .status. we can then use the property in our custom error handler (Connect repects this prop as well)
function error  (status, msg) {
var err = new Error(msg);
err.status = status;
return err;
};
function logErrors  (err, req, res, next) {
console.error(err.stack);
next(err);
};
function errorHandler (err, req, res, next) {
res.status(500);
res.render('error', { error: err });
};
//Error handlers
//Since this is the last non-error-handling middleware use()d, we assume 404, as nothing else responded.
//$ curl http://localhost:3000/notfound
//$ curl http://localhost:3000/notfound -H "Accept: application/json"
//$ curl http://localhost:3000/notfound -H "Accept: text/plain"
app.use(function(req, res, next){
res.status(404); 
if (req.accepts('html')) {//respond with html page
res.render('404', { url: req.url });
return;
} 
if (req.accepts('json')) {//respond with json
res.send({ error: 'Not found' });
return;
} 
res.type('txt').send('Not found');//default to plain-text. send()
});
//error-handling middleware, take the same form as regular middleware, however they require an
//arity of 4, aka the signature (err, req, res, next).when connect has an error, it will invoke ONLY error-handling middleware.
//If we were to next() here any remaining non-error-handling middleware would then be executed, or if we next(err) to
//continue passing the error, only error-handling middleware would remain being executed, however here
//we simply respond with an error page.
app.use(function(err, req, res, next){
//we may use properties of the error object here and next(err) appropriately, or if we possibly recovered from the error, simply next().
res.status(err.status || 500);
res.render('500', { error: err });
});
if (!module.parent) {//assigning to exports will not modify module, must use module.exports
app.listen(3000);
silent || console.log('Express started on port 3000');
};
InformationsquelleAutor Kobojunkie | 2014-05-11