J'essaie de commencer avec la pile MEAN. Et je suis ce tutoriel: lien
Je l'ai fait jusqu'à la section Test Our Server . Ici
// modules =================================================
var express = require('express');
var app = express();
var mongoose= require('mongoose');
// configuration ===========================================
// config files
var db = require('./config/db');
var port = process.env.PORT || 8080; // set our port
mongoose.connect(db.url); // connect to our mongoDB database (uncomment after you enter in your own credentials in config/db.js)
app.configure(function() {
app.use(express.static(__dirname + '/public')); // set the static files location /public/img will be /img for users
app.use(express.logger('dev')); // log every request to the console
app.use(express.bodyParser()); // have the ability to pull information from html in POST
app.use(express.methodOverride()); // have the ability to simulate DELETE and PUT
});
// routes ==================================================
require('./app/routes')(app); // configure our routes
// start app ===============================================
app.listen(port); // startup our app at http://localhost:8080
console.log('Magic happens on port ' + port); // shoutout to the user
exports = module.exports = app; // expose app
Quand je cours
nodemon server.js
Je reçois cette erreur
app.configure(function() {
^
TypeError: Object function (req, res, next) {
app.handle(req, res, next);
} has no method 'configure'
at Object.<anonymous> (C:\Users\Yuksel\Desktop\node\test\server.js:14:5)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:902:3
5 Mar 17:27:20 - [nodemon] app crashed - waiting for file changes before startin
g...
Il dit simplement que l'application n'a pas de méthode de configuration (je suppose). Mais lorsque je supprime la partie configure et la réexécute, cela fonctionne (cela signifie que l'application a la méthode .listen, c'est donc un objet express).
J'ai essayé à la fois avec node et nodemon. Et je ne pouvais pas le comprendre. Merci pour votre temps.
La méthode configure a été supprimée d'Express à partir de la version 4.0.0 (y compris 4.0.0-rc2). Voir le changelog sur https://github.com/strongloop/express/blob/master/History.md#400--2014-04-09
Tom dans son article de blog new-features-node-express-4 fournit des exemples de conversion de l'utilisation de app.configure dans la version express 3.x pour le supprimer dans la version express 4.0.
Pour plus de commodité, j'ai ajouté l'exemple de code ci-dessous.
Version 3.x
// all environments
app.configure(function(){
app.set('title', 'Application Title');
})
// development only
app.configure('development', function(){
app.set('mongodb_uri', 'mongo://localhost/dev');
})
// production only
app.configure('production', function(){
app.set('mongodb_uri', 'mongo://localhost/prod');
})
Version 4.0
// all environments
app.set('title', 'Application Title');
// development only
if ('development' == app.get('env')) {
app.set('mongodb_uri', 'mongo://localhost/dev');
}
// production only
if ('production' == app.get('env')) {
app.set('mongodb_uri', 'mongo://localhost/prod');
}