使用Pug&Express和MongoDB未找到错误404

使用Pug&Express和MongoDB未找到错误404,mongodb,express,pug,Mongodb,Express,Pug,我使用Express&MongoDB进行POST请求时遇到404 not found错误。我多次尝试重做我的路线,但登录页面有问题。我想将信息发布到我的服务器上,并呈现一条简单的欢迎消息。 请告知 路由文件夹: var express = require('express'); var router = express.Router(); let mongoose = require('mongoose'); var User = require('../models/users') //Ge

我使用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')

您似乎没有将路由器导入app.js中的任何位置。第一加

var registerRoute = require("./path/to/route.js");
在你的其他要求之后。然后加上

app.use(registerRoute)
代替这一行:

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

我仍然不喜欢上面的评论,但是我的回答很有帮助

但我的问题是我有下面这句话:

app.use('/', routes);
所以我换到了我申请的地方

app.use('/Live/api', routes);
我用的是快车和帕格