节点 js 的 HTTP 身份验证问题 [关闭]

问题描述 投票:0回答:0

//importo express
const express = require('express');
//importo mongoose
const mongoose = require('mongoose'); 
//path module
const path = require('path');; 
// auth module
const auth = require('http-auth')
// connection module
//const connect = require('../node_modules/connect/index');
//estraggo il metodo router da express
const router = express.Router();
//funzione per la validazione
const { body, validationResult } = require('express-validator');
//importo lo schema
const Registration = mongoose.model('Registration');

//auth module
const basic = auth.basic({
  file: path.join(__dirname, '../users'),
});

// lo slash corrisponde a qualsiasi pagina. Tutto viene visualizzato dalla cartella views
router.get('/', (req, res) => {
  res.render('form', {title: 'Registration form'});
});
// /registrations: invento io la mia pagina. Tutto viene visualizzato dalla cartella views
router.get('/registrations', auth.connect(basic), (req, res) => {
  Registration.find()
    .then((registrations) => {
      res.render('index', { title: 'Listing registrations', registrations });
    })
    .catch(() => { res.send('Sorry! Something went wrong.'); });
}); 
router.post('/',
  [
    body('name')
      .isLength({ min: 1 })
      .withMessage('Please enter a name'),
    body('email')
      .isLength({ min: 1 })
      .withMessage('Please enter an email'),
  ],
  (req, res) => {
    const errors = validationResult(req);
    if (errors.isEmpty()) {
        const registration = new Registration(req.body);
        registration.save()
        .then(() => { res.send('Thank you for your registration!'); })
        .catch(() => { res.send('Sorry! Something went wrong.'); });
    } else {
      res.render('form', {
        title: 'Registration form',
        errors: errors.array(),
        data: req.body,
      });
    }
  }
);

//esporto router per poterlo importare in altri file
module.exports = router;
 

我正在尝试通过这本书《9个实用的node js项目》来学习Node Js。我遇到了 http 身份验证问题。我一步一步地按照说明操作,但我在控制台中发现了这个错误(下图)。book screenshot console error

所以我从 node_modules connect 文件夹中添加了模块(连接模块下的注释)。只有当我删除 router.get 中的 auth 变量时,错误才会消失,但在我的 /registrations 列表中它不会询问我的用户名和密码。我该如何解决?几个小时以来,我一直在努力找出问题所在。任何帮助和澄清表示赞赏。

javascript node.js authentication http http-authentication
© www.soinside.com 2019 - 2024. All rights reserved.