Ошибка: connect.session({secret: string}) требуется для безопасности node.js coffeescript

Я получаю эту ошибку при попытке использовать coffeescript:

Error: connect.session({ secret: "string" }) required for security

Это тот же server.js, преобразованный в server.coffee с помощью http://js2coffee.org/.

Сеанс подключения имеет секрет:

app.use express.session(
  secret: "secretkey"
  store: new MongoStore(
    dbname: dbconfig.dbname
    username: dbconfig.username
    password: dbconfig.password
    host: dbconfig.host
    port: dbconfig.port
    collection: "session"
  )
)

server.js работает нормально.

Что здесь не так? Спасибо.


person Harry    schedule 10.09.2011    source источник


Ответы (1)


Глядя на источник для connect.session, ошибка вы получаете, может произойти только в том случае, если !options.secret, где options - это хеш, который вы передаете функции session. Ваш код явно устанавливает secret в допустимое значение. js2coffee иногда может что-то испортить, но здесь проблема не в этом.

Поэтому я должен спросить: как вы запускаете этот код? И какую версию CoffeeScript вы используете?

(Кроме того, вы не пытаетесь использовать пустую строку в качестве secret, не так ли? !"" равно true, поэтому connect.session не примет ее...)

person Trevor Burnham    schedule 10.09.2011
comment
Спасибо за вашу помощь. Секретный ключ — «секретный ключ», хотя я пробовал и другие ключи. Я сделал npm install coffee-script, что бы это ни было, только вчера. Я использую sudo node server.coffee, я использую node.js 0.4.7. - person Harry; 11.09.2011
comment
Подождите — *узел* server.coffee? Да, вот в чем проблема... Node пытается интерпретировать файл .coffee как JavaScript! Вместо этого запустите coffee server.coffee. - person Trevor Burnham; 11.09.2011
comment
Извините, мой плохой, я сделал кофе server.coffee, я неправильно вспомнил. - person Harry; 12.09.2011
comment
Я не могу повторить. Вот суть полного server.coffee, который у меня работает нормально: gist.github.com/1210225 - person Trevor Burnham; 12.09.2011