【问题标题】:Error 404 Not Found Using Pug & Express and MongoDB使用 Pug & Express 和 MongoDB 找不到错误 404
【发布时间】:2018-10-13 16:54:40
【问题描述】:

我在使用 Express 和 MongoDB 进行 POST 请求时遇到 404 not found 错误。我多次尝试重做路线,但登录页面出现问题。我想将信息发布到我的服务器并呈现一个简单的“欢迎消息”。 请指教。

路由文件夹:

var express = require('express');
var router = express.Router();
let mongoose = require('mongoose');
var User = require('../models/users')

//Get registration page from index button//
router.get('/register', function(req, res, next) {
  res.render('register');
    if (err) return console.error(err);
    res.json(user);
});

//Post user data to database POST /register //
router.post('/register', function(req, res, next) {
  res.render('Welcome to Fit 7');
})
    var username = req.body.username;
    var email = req.body.email;
    var password = req.body.password;

    var newuser =  new User();
    newuser.username = username;
    newuser.email = email;
    newuser.password = password;
    newuser.save(function(err, savedUser) {
        if(err) {
            console.log(err);
            return res.status(500).send();
        }
        return res.status(200).send();

    })

    module.exports = router;

应用 JS 代码:

// var createError = require('http-errors');
var express = require('express');
var app = express();

var path = require('path');
// var cookieParser = require('cookie-parser');
var logger = require('morgan');
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
var pug = require('pug');

// var indexRouter = require('./routes/index');
var workouts = require('./routes/workouts');

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(express.static(path.join(__dirname, 'public')));

// view engine setup
app.set('view engine', 'pug');
app.set('views', path.join(__dirname, 'views'));


// app.use(cookieParser());
// app.use(express.static(path.join(__dirname, 'public')));

// app.use('/', indexRouter);
// app.use('/api/workouts', workouts);

 app.get('/', function (req, res) {
  res.render('index')

})

//Registration Route for New Users
app.get('/register', function (req, res) {
  res.render('register')  
});


app.get('/home', function (req, res) {
  res.render('home');
});

app.get('/workout/new', function (req, res) {
  res.render('workoutform');
});

//     catch 404 and forward to error handler
app.use(function(req, res, next) {
  var err = new Error('Not Found');
  err.status = 404;
  next(err);});

// error handler
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

module.exports = app;

Pug 模板代码:

  body(data-gr-c-s-loaded='true', style='')
.container
  form(action='/register', method='post').form-signin
    h1.form-signin-heading Login to Fit-7
    label.sr-only(for='username') Name
    input#name.form-control(type='username', placeholder='username', 
required='', autofocus='')
    label.sr-only(for='email') Email address
    input#inputEmail.form-control(type='email', placeholder='email address', 
required='', autofocus='')
    label.sr-only(for='password') Password
    input#password.form-control(type='password', placeholder='password', 
required='')
    button.btn.btn-lg.btn-primary.btn-block(type='submit') Sign in
span._hsShareImage.hsShareImage  
    loom-container#lo-engage-ext-container
      loom-shadow(data-reactroot='', classname='resolved')

【问题讨论】:

    标签: mongodb express pug


    【解决方案1】:

    您似乎没有在 app.js 中的任何位置导入路由器。先添加

    var registerRoute = require("./path/to/route.js");
    

    根据您的其他要求。然后添加

    app.use(registerRoute)
    

    代替这一行:

    app.get('/register', function (req, res) {
        res.render('register')  
    });
    

    【讨论】:

      【解决方案2】:

      我仍然没有喜欢上面的评论或评论的声誉,但答案非常有帮助。

      但我的问题是我有以下行:

      app.use('/', routes);
      

      所以我改变了我的应用程序所在的位置

      app.use('/Live/api', routes);
      

      我在 pug 上使用 express

      【讨论】:

        猜你喜欢
        • 2018-07-28
        • 2022-01-23
        • 2014-07-24
        • 2016-06-02
        • 2014-12-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-29
        相关资源
        最近更新 更多