2016-02-16 3 views
3

В настоящее время я следую за tutorial о том, как создать простую систему проверки подлинности HTTP в Node.js. Я почти полностью выполнил все шаги учебника, как только он говорит, но когда я пытаюсь запустить его, я всегда получаю эту ошибку: TypeError: object is not a functionNode.js Аутентификация TypeError: объект не является функцией

Вот код из учебника: (Ошибка возникает в строке 3)

var http = require("http"); 
var auth = require("http-auth"); 
var digest = auth({ 
    authRealm: "Private area", 
    authFile: __dirname + "/htpasswd", 
    authType: "digest" 
}); 
var server = http.createServer(function(request, response) { 
    digest.apply(request, response, function(username) { 
    response.writeHead(200, {"Content-Type": "text/plain"}); 
    response.write("Hello " + username); 
    response.end(); 
    }); 
}); 

server.listen(80); 
console.log("Server is listening"); 

Заранее благодарен! Извините, если этот вопрос довольно глуп, я новичок в Node.js. : P

+0

Упоминание о том, какая ЛИНИЯ вы получаете ошибку, всегда является хорошим намеком, BTW. Действительно помогает другим людям, которые смотрят на код. –

+0

@JeremyJStarcher обновлен! – javathunderman

ответ

0

попробовать с помощью:

var basic = auth.basic({ 
    authRealm: "Private area", 
    authFile: __dirname + "/htpasswd", 
    authType: "digest" 
}); 

для присвоения переменной basic.

+0

Похоже, что с этим модулем есть какая-то проблема. Я попытался использовать это решение, но он говорит, что метод «apply» (который я использовал позже в этом коде) не существует. – javathunderman

+0

Я думаю, это совершенно другая ошибка. Проблема может быть связана с учебником, не обязательно с модулем. Учебное пособие более 3-х лет. –

+0

Правда. Возможно, мне придется искать альтернативы. – javathunderman