2012-11-21 25 views
25

kullanımdan kaldırılmıştır. Denemek ve oynamak için bir düğüm uygulaması indirdim. Etrafımda dolaştım ve Express'in biraz modası geçmiş olduğunu tespit ettim. Birisi uygulanan kodu düzeltmeme yardım edebilir mi?Nodejs/Express - Uygulamamı başlatıyorum: express.createServer(),

İşte kod

/** 
* Module dependencies. 
*/ 

// base dependencies for app 
var express = require('express') 
    , routes = require('./routes') 
    , DB = require('./accessDB').AccessDB 
    , passport = require('passport') 
    , mongoose = require('mongoose') 
    , mongoStore = require('connect-mongodb'); 

var app = module.exports = express.createServer(); 
global.app = app; 

var DB = require('./accessDB'); 
var conn = 'mongodb://localhost/CrowdNotes'; 
var db; 

// SocketIO Configuration 
//var io = require('socket.io').listen(app); 
// 
//io.sockets.on('connection', function(socket) { 
// socket.on('user note', function (note) { 
// console.log(note); 
// }); 
//}); 

// Configuration 
app.configure(function(){ 
    app.set('views', __dirname + '/views'); 
    app.set('view engine', 'jade'); 
    app.use(express.cookieParser()); 
    app.use(express.bodyParser()); 
    app.use(express.methodOverride()); 
    app.use(require('stylus').middleware({ src: __dirname + '/public' })); 
    app.use(express.session({ 
    store: mongoStore(conn) 
    , secret: 'applecake' 
    }, function() { 
    app.use(app.router); 
    })); 
    app.use(passport.initialize()); 
    app.use(passport.session()); 
    app.use(express.static(__dirname + '/public')); 
}); 

db = new DB.startup(conn); 

app.configure('development', function(){ 
    app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); 
}); 

app.configure('production', function(){ 
    app.use(express.errorHandler()); 
}); 

// Routes 
require('./routes')(app); 

app.listen(3000); 
console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env); 

Ve burada SABİT node app

C:\CrowdNotes>node app 
Warning: express.createServer() is deprecated, express 
applications no longer inherit from http.Server, 
please use: 

    var express = require("express"); 
    var app = express(); 


C:\CrowdNotes\app.js:63 
console.log("Express server listening on port %d in %s mode", app.address().po 
                   ^
TypeError: Object function app(req, res){ app.handle(req, res); } has no method 
'address' 
    at Object.<anonymous> (C:\CrowdNotes\app.js:63:67) 
    at Module._compile (module.js:449:26) 
    at Object.Module._extensions..js (module.js:467:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Module.runMain (module.js:492:10) 
    at process.startup.processNextTick.process._tickCallback (node.js:244:9) 

C:\CrowdNotes> 

aracılığıyla bir kez uygulamayı çalıştıran alırsınız hatadır.

ben kayıt noktada artık, ve bu hatayı benim yeni 'Kullanıcı' verilerini kullanarak giriş ve almak için gidin:

ReferenceError: C:\CrowdNotes\views\account.jade:6 
    4| div#header 
    5|  h2 CrowdNotes 
    > 6|  p Hi, #{currentUser.name.first}! 
    7| 
    8| - if (myEvent) 
    9|  p.center My Event: #{myEvent.name} 

currentUser is not defined 
    at eval (eval at <anonymous> (C:\CrowdNotes\node_modules\jade\lib\jade.js:176:8)) 
    at exports.compile (C:\CrowdNotes\node_modules\jade\lib\jade.js:181:12) 
    at Object.exports.render (C:\CrowdNotes\node_modules\jade\lib\jade.js:216:14) 
    at View.exports.renderFile [as engine] (C:\CrowdNotes\node_modules\jade\lib\jade.js:243:13) 
    at View.render (C:\CrowdNotes\node_modules\express\lib\view.js:75:8) 
    at Function.app.render (C:\CrowdNotes\node_modules\express\lib\application.js:500:10) 
    at ServerResponse.res.render (C:\CrowdNotes\node_modules\express\lib\response.js:716:7) 
    at module.exports.getAccount (C:\CrowdNotes\routes\index.js:47:11) 
    at Promise.module.exports.getMyEvent (C:\CrowdNotes\accessDB.js:54:7) 
    at Promise.addBack (C:\CrowdNotes\node_modules\mongoose\lib\promise.js:128:8) 

Bunu merak ediyorum çok sözdizimi hatası bazı şeklidir ? Kodun tamamen tbh olduğunu düşündüğümden, burada neyin yanlış gittiğinden emin değilim.

buradan kod kullanıyorum: https://github.com/rockbot/crowdnotes

+1

Başka bir sorun için lütfen başka bir soru gönderin – Mustafa

cevap

59

çözüm hata verilir.

Uyarı: express.createServer(), kaldırılmış uygulamaların artık kullanınız http.Server devralan ifade edilir:

var express = require("express"); 
    var app = express(); 

Yani sadece bunu yapmak zorunda kalacaktır.

var express = require('express') 
    , http = require('http'); 

var app = express(); 
var server = http.createServer(app); 
+0

Cevabınız için teşekkürler. Yukarıdaki gönderiye yeni bir hata ekledim, bunun neden olduğuna dair bir fikrin var mı? – germainelol

+0

hata, şablonun currentUser nesnesinin nerede tanımlandığını bulamaması nedeniyle – deven98602

+0

İlginç, bu örnekte currentUser kullanıldığında bu yolu izlemek oldukça zor. Örneğin, currentUser'ın dosyalar açısından nereye gideceğini göremiyorum. – germainelol

2

Bunun bir başka olası çözümü, bağımlılık olarak hızlı 2.5.8'in kurulmasıdır.

{ 
    "name": "authentication" 
    , "version": "0.0.1" 
    , "private": true 
    , "dependencies": { 
     "express": "2.5.8" 
    , "jade": ">= 0.26.1" 
    } 
} 

ve sonra

npm install 
5

Onun bu basit programı ile yapılır yapabilirsiniz çalıştırın::

package.json ekle sorunsuz çalışıyor

var express = require('express'); 
var app = express(); 
app.get('/', 
    function(req,res) 
    { 
     res.send("express"); 
    } 
); 
app.listen(3333); 

.

0

Zaten şu pasajı kullanıyorum ve gayet çalışıyor:

var express =require("express"); 
var http = require("http"); 

var app = express(); 
//app routers here 
... 
var httpServer = http.Server(app); 

httpServer.listen({PORT}, function(err){ 

}); 
İlgili konular