简体   繁体   中英

Jade files, routes folder and server/app.js is not rendering or redirecting

//routes/meal.js
var express = require('express');
var router = express.Router();
var app = express();
/* GET users listing. */
router.get('/meal', function(req, res, next) {
    res.render('/home/noah/Desktop/gadfit/views/meal.jade');
    //res.send('respond with a resource');
});

router.post('/meal', (req, res) => {
    //res.send('POST request to the homepage');
    //res.redirect('http://google.com')
    console.send(req.query + req.body);
    res.json({ 1: 1 });
});

router.patch('/meal', (req, res) => {
    res.send(`PACTH request to / body:${req.body} params: ${req.params[0]}`);
});
router.trace('/meal', (req, res) => {
    res.send('SEND request to /');
});
app.copy('/meal', (req, res) => {
    res.send('COPY request to /');
});
app.lock('/meal', (req, res) => {
    res.send('LOCK request to /');
});
app.purge('/meal', (req, res) => {
    res.send('PURGE request to / ');
});
app.head('/meal', (req, res) => {
    res.send('HEAD request to /');
});
app.link('/meal', (req, res) => {
    res.send('LINK request request to / ');
});
app.delete('/meal', (req, res) => {
    res.send('DELETE request to /');
});
app.options('/meal', (req, res) => {
    res.send('OPTIONS request to /');
});
app.connect('/meal', (req, res) => {
    res.send('CONNECT request to /');
});
app.trace('/meal', (req, res) => {
    res.send('TRACE request to /');
});

module.exports = router;
// meal.jade 
doctype doctype html
extends layout

html(lang="en")
  head
    meta(charset="UTF-8")
    meta(http-equiv="X-UA-Compatible", content="IE=edge")
    meta(name="viewport", content="width=device-width, initial-scale=1.0")
    title Document
  body
    block content
      p 'meal plan'
//app.js 
const express = require('express');
const path = require('path');
const cookieParser = require('cookie-parser');
const logger = require('morgan');
const port = 3000;
const bodyParser = require('body-parser');
const router = express.Router();
const url = require('url');
const querystring = require('querystring');
const http = require('http');
const https = require('https');
const createError = require('http-errors');
const app = express();


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

//app.use("/", router);
/*
app.use(function(req, res, next) // catch 404 and forward to error handler
    {
        next(createError(404));
    });
app.use(function(err, req, res, next) // error handler 
    {
        // 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');
    });

app.all('/', (req, res) => {
    res.render('/home/noah/Desktop/gadfit/views/contact.jade');
});
app.get('/member/:name/planet/:home', (req, res) => {
    const memberDetails = {
        member: req.params.name,
        planet: req.params.home
    }
    res.render('guardian', memberDetails);
});
app.get('*', (req, res, next) => {
    res.status(200).send('Sorry, page not found');
    next();
}); 
*/
//app.set('views engine', path.join(__dirname, 'views'));

app.set('views engine', 'jade');

const indexRouter = require('./routes/index');
const usersRouter = require('./routes/users');
const contactRouter = require('./routes/contact');
const mealRouter = require('./routes/meal');
const gadginRouter = require('./routes/gadgin');
const aboutRouter = require('./routes/about');

app.use('/index', indexRouter);
app.use('/users', usersRouter);
app.use('/about', aboutRouter);
app.use('/contact', contactRouter);
app.use('/gadgin', gadginRouter);
app.use('/meal', mealRouter);

app.listen(port, () => {
    console.log(`Server started at port ${port}`)
});

module.exports = app;

I have a standard and basic app I want to use and make, it loads on the server.js file and I have routes being loaded into it from routes folder and each respective route/x.js folder handles particular request and responses to HTTP protocols. I am trying to divide the code for routing from the actual server app because that is called sanity. It does not load and causes a 404 error when I call a get from say 'localhost:3000/meal' when it should load the respective jade file.

{
  "name": "gadfit",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "node ./bin/www"
  },
  "dependencies": {
    "body-parser": "^1.20.0",
    "cookie-parser": "~1.4.4",
    "debug": "~2.6.9",
    "express": "~4.16.1",
    "http-errors": "~1.6.3",
    "jade": "^0.29.0",
    "morgan": "~1.9.1",
    "path": "^0.12.7",
    "querystring": "^0.2.1",
    "serve-static": "^1.15.0",
    "url": "^0.11.0"
  },
  "description": "Alyssa Gadson Fitness Program",
  "main": "app.js",
  "author": "Noah",
  "license": "ISC"
}

I assume this is a coding problem but it could also be an environment/npm problem.

NVM, I had to change the routed name in the respective routes folder to '/' which is kind of cool and makes sense!

var express = require('express');
var router = express.Router();
var app = express();
/* GET users listing. */
router.get('/', function(req, res, next) {
    res.render('/home/noah/Desktop/gadfit/views/meal.jade');
    //res.send('respond with a resource');
});

router.post('/', (req, res) => {
    //res.send('POST request to the homepage');
    //res.redirect('http://google.com')
    console.send(req.query + req.body);
    res.json({ 1: 1 });
});

router.patch('/', (req, res) => {
    res.send(`PACTH request to / body:${req.body} params: ${req.params[0]}`);
});
router.trace('/', (req, res) => {
    res.send('SEND request to /');
});
app.copy('/', (req, res) => {
    res.send('COPY request to /');
});
app.lock('/', (req, res) => {
    res.send('LOCK request to /');
});
app.purge('/', (req, res) => {
    res.send('PURGE request to / ');
});
app.head('/', (req, res) => {
    res.send('HEAD request to /');
});
app.link('/', (req, res) => {
    res.send('LINK request request to / ');
});
app.delete('/', (req, res) => {
    res.send('DELETE request to /');
});
app.options('/', (req, res) => {
    res.send('OPTIONS request to /');
});
app.connect('/', (req, res) => {
    res.send('CONNECT request to /');
});
app.trace('/', (req, res) => {
    res.send('TRACE request to /');
});

module.exports = router;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM