Здесь несколько вещей не так.
Во-первых, app.use('/', routes);
просто неправильно.То, как вы определили route
, это просто обычная функция (не промежуточное ПО), которую вы вызываете как обычную функцию, чтобы затем зарегистрировать ваш маршрут с помощью app.get()
.
Во-вторых, выВы создаете два отдельных объекта app
, а один в index.js
не подключен к работающему серверу, поэтому он ничего не делает.
Обычный способ инкапсулировать маршруты в отдельный файл - это использовать маршрутизатор.
/*
Name: index.js
Notes: export router here
*/
import express from 'express';
const router = express.Router();
router.get('/test', function(req, res,next) {
res.status(200).json({ message: 'Connected!' });
});
export default router
И затем измените файл server.js для использования этого маршрутизатора, просто изменив имена для соответствия и подключив маршрутизатор к приложению с помощью app.use(router)
:
*
Name: server.js
Notes: file that starts backend.
*/
//Imports
import express from 'express';
import * as bodyParser from 'body-parser';
import router from './routes/index';
//Init Express
const app = express();
//Set Port Number
const port = process.env.PORT || 5000;
//Parses json
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
// Connect all our routes to our application
app.use(router);
//Spins up Node Server
app.listen(port, () => {
console.log(`Listening on port ${port} `);
});
Если вы не хотите использовать отдельный маршрутизатор (не знаете почему), вы можете просто передать объект app
в функцию router()
и просто вызвать его как обычную функцию.
/*
Name: server.js
Notes: file that starts backend.
*/
//Imports
import express from 'express';
import * as bodyParser from 'body-parser';
import routes from './routes/index';
//Init Express
const app = express();
//Set Port Number
const port = process.env.PORT || 5000;
//Parses json
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
// Connect all our routes to our application
routes(app);
//Spins up Node Server
app.listen(port, () => {
console.log(`Listening on port ${port} `);
});
/*
Name: index.js
Notes: export routes function here
*/
// function to initialize some routes on the pass-in app object
function routes(app){
app.get('/test', function(req, res,next) {
res.status(200).json({ message: 'Connected!' });
});
}
export default routes