2012-11-21 18 views
25

से हटा दिया गया है, मैंने परीक्षण और खेलने के लिए एक नोड ऐप डाउनलोड किया है। मैंने चारों ओर गुगल किया है और पाया है कि एक्सप्रेस थोड़ा पुराना पाया जाता है। क्या कोई मुझे लागू कोड को ठीक करने में मदद कर सकता है?नोडज/एक्सप्रेस - मेरे ऐप को लॉन्च करना: express.createServer() को

यहाँ कोड

/** 
* 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); 

यहाँ है और के माध्यम से 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> 

निर्धारित त्रुटि मैं एक बार एप्लिकेशन चल रहा प्राप्त है।

मैं बिंदु जहाँ मैं रजिस्टर पर अब हूँ, और अपने नए 'उपयोगकर्ता' डेटा का उपयोग कर के लिए लॉग इन और यह त्रुटि प्राप्त करने के लिए जाना:

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) 

मैं इस करता है, तो सोच रहा हूँ भी सिंटैक्स त्रुटि के कुछ फार्म है ? निश्चित नहीं है कि यहां क्या गलत हो गया है क्योंकि मैंने सोचा था कि कोड सभी को tbh लिखा है।

मैं यहाँ से कोड का उपयोग कर रहा: https://github.com/rockbot/crowdnotes

+1

कृपया किसी अन्य समस्या के लिए एक और प्रश्न सबमिट करें – Mustafa

उत्तर

59

समाधान त्रुटि में दी गई है।

चेतावनी: express.createServer(), अब मान्य नहीं है व्यक्त ऐप्लिकेशन के अब http.Server से विरासत का उपयोग करें:

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

तो आप बस यह करने के लिए होगा।

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

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

उत्तर के लिए धन्यवाद। मैंने उपरोक्त पद में एक नई त्रुटि जोड़ दी है, क्या आपको कोई विचार है कि यह क्यों हो रहा है? – germainelol

+0

त्रुटि यह है क्योंकि टेम्पलेट यह पता लगाने में असमर्थ है कि ऑब्जेक्ट वर्तमान उपयोगकर्ता को परिभाषित किया गया है – deven98602

+0

दिलचस्प है, इस उदाहरण में वर्तमान उपयोगकर्ता का उपयोग करते समय यह पथ का पालन करना बहुत मुश्किल है। उदाहरण के लिए मैं नहीं देख सकता कि वर्तमान उपयोगकर्ता आगे फ़ाइलों के संदर्भ में कहां जाएगा। – germainelol

2

यह करने के लिए एक अन्य संभावित समाधान एक निर्भरता के रूप में एक्सप्रेस 2.5.8 स्थापित करने के लिए है।

package.json में जोड़ें:

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

और फिर चलाने

npm install 
5

इसका इस साधारण प्रोग्राम के साथ किया जा सकता है:

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

यह ठीक काम करता है।

0

मैं पहले से ही निम्नलिखित स्निपेट का उपयोग कर रहा है और यह ठीक काम कर रहा है: एक्सप्रेस (4.x व्यक्त) के नए रिलीज के साथ

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

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

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

});