Экспресс-запрос на локальный хост: 3000 не работает - PullRequest
0 голосов
/ 08 марта 2019

Экспресс-запрос на получение к конечной точке '/' не работает, тогда как запросы к конечной точке '/ books' или '/ users' работают нормально. Я не знаю, что не так в моем коде. Как я новичок в Express Framework, так что я ищу помощь. Ниже мой код. Спасибо.

// файл app.ts

const express = require('express');
const path = require('path');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
const cors = require('cors');
const usersRouter = require('./routes/users.js');

// All Routers
const bookRouter = require('./routes/bookRouter.ts');
const indexRouter = require('./routes/indexRouter.ts');


const config = require('./config.ts');

const PORT = 3000;
const app = express();

// adding express middleware
function isLoggedIn(req, res, next) {
    if (!(req.session && req.session.user)) {
    return res.send('Not logged in!');
}
next();
}
app.use(cors());
app.use(bodyParser.json());

// Establishing the connection
const url = config.mongoUrl;
const connect = mongoose.connect(url, { useNewUrlParser: true });

connect.then((db) => {
    console.log('Connection Successful');
}, (err) => { console.log('Cannot connect to the database bookstore ', err); 
});

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

app.listen(PORT, () => {
console.log('Server started at port: ' + PORT);
});

app.use('/', indexRouter);

app.use('/users', usersRouter);
app.use('/books', bookRouter);


module.exports = app;

// файл indexRouter.ts

const express = require('express');
const router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {
// res.render('index', { title: 'Express' });
console.log('Working');
res.send('get works');
});

module.exports = router;

// файл bookRouter.ts

const bodyParser = require('body-parser');
const mongoose = require('mongoose');
const express = require('express');
const bookRouter = express.Router();
const Books = require('../models/books.ts');

bookRouter.route('/')
.get((req, res, next) => {
Books.find(req.query)
.then((books) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'application/json');
console.log('Books: ', books);
res.send('Works');
})
.catch(err => {
res.status(400).send('Unable to get data from database', err);
});
})
.post((req, res, next) => {
Books.create(req.body)
.then((dish) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'application/json');
res.json(dish);
})
.catch(err => {
res.status(400).send('Unable to save to database');
});
})
.put((req, res, next) => {
res.statusCode = 403;
res.end('PUT operation not supported on /dishes');
})
.delete((req, res, next) => {
Books.deleteMany({})
.then((resp) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'application/json');
res.json(resp);
});
});


bookRouter.route('/:bookId')
.get((req, res, next) => {
Books.findById(req.params.bookId)
.then((book) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'application/json');
res.json(book);
});
})
.post((req, res, next) => {
res.statusCode = 403;
    res.end('POST operation not supported on /books/' + req.params.bookId);
})
.put((req, res, next) => {
Books.findByIdAndUpdate(req.params.bookId, {
$set: req.body
}, {new: true})
.then((book) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'application/json');
res.json(book);
});
})
.delete((req, res, next) => {
Books.findByIdAndRemove(req.params.bookId)
.then((resp) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'application/json');
res.json(resp);
});
});

module.exports = bookRouter;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...