Nowjs все еще не работает с экспресс 3.0

Я пытаюсь заставить nowjs работать с Express 3.0, как в этом вопросе. Я следую коду, но все равно получаю «Сейчас не определено».

Я запускаю Ubuntu 12.04 в виртуальной машине Oracle VM.

Сначала я создаю экспресс-приложение.

$ express myBrilliantNewApp

Затем я устанавливаю nowjs в новый каталог.

$ sudo npm install now

Добавьте переменную сервера и используйте ее сейчас.

var server = http.createServer(app).listen(app.get('port'), function() {
console.log('Express server listening on port ' + app.get('port'));
})

var everyone = require('now').initialize(server);

Тогда я должен быть в состоянии сделать это...

everyone.now.writesomething = function() {
console.log('I would really like it if this shows up at the console') 
};

...и позвоните и узнайте, что у каждого из вас.

now.writesomething();
console.log(everyone);

Это не работает. Я получил:

[ReferenceError: now is not defined]
ReferenceError: now is not defined
at Object.<anonymous> (/home/jan/dev/apps/probeer1/app.js:44:1)
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)

Может ли кто-нибудь сказать мне, что я делаю неправильно здесь?

Полный список app.js

/**
* Module dependencies.
*/

var express = require('express')
  , routes = require('./routes')
  , http = require('http')
  , path = require('path');

var app = express();

app.configure(function(){
  app.set('port', process.env.PORT || 3000);
  app.set('views', __dirname + '/views');
  app.set('view engine', 'jade');
  app.use(express.favicon());
  app.use(express.logger('dev'));
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(app.router);
  app.use(express.static(path.join(__dirname, 'public')));
});

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

app.get('/', routes.index);

var server = http.createServer(app).listen(app.get('port'), function() {
  console.log('Express server listening on port ' + app.get('port'));
})

var everyone = require('now').initialize(server);


everyone.now.writesomething = function() {
  console.log('I would really like it if this shows up at the console')
};

now.writesomething();
console.log(everyone);

person Mr.    schedule 14.08.2012    source источник


Ответы (2)


Перед использованием nowjs на сервере нужно вызвать:

var nowjs = require('now');

Чтобы использовать nowjs на клиенте, вам нужно включить ссылку на скрипт в ваш HTML:

<script src="/nowjs/now.js"></script>
person JohnnyHK    schedule 14.08.2012
comment
спасибо, мне плохо, когда я возился с кодом, который я забыл. Вставьте его обратно. Та же (типа) проблема, однако - person Mr.; 14.08.2012
comment
Вы включили ссылку на скрипт now.js на стороне клиента? Смотрите обновленный ответ. - person JohnnyHK; 14.08.2012
comment
Я попытался воспроизвести ошибку, вызвав функцию со стороны сервера. Смотрите обновленный вопрос. Должно ли это работать? - person Mr.; 15.08.2012
comment
Также попробовал вызов на стороне клиента (ссылка на now.js включена). Скрипт Now.js загружается. Теперь я получаю сообщение об ошибке. writesomething не является функцией в клиентской консоли. - person Mr.; 15.08.2012