Я очень новичок в node, но в основном я пытаюсь потребовать в моем route.js файл app.js, например,

var express = require("express"),
app = express(),
routes = require('./routes/index');

const port = process.env.PORT || 3000;
app.listen(port, () => console.log(`app is running on ${port}!`))

Ее мой файл routes / index.js:

var express = require("express");
var router  = express.Router();

//root route
router.get("/", function(req, res){
    res.render("hello world");
});

Проблема в том, что когда я перехожу на localhost: 3000, я получаю сообщение об ошибке

не может получить /

Я могу console.log ('hi') в моем файле index.js, он отображается в терминале, поэтому я знаю, что файл загружается. Я уверен, что это что-то простое, но независимо от того, что я пробую, это не работает .

Также вот зависимости моего файла package.son

  "dependencies": {
"body-parser": "^1.14.1",
"connect-flash": "^0.1.1",
"cookie-parser": "^1.4.3",
"dotenv": "^4.0.0",
"ejs": "^2.3.4",
"express": "^4.13.3",
"express-session": "^1.11.3"
}

Остальные я притащу после того, как исправлю эту ошибку.

0
Connor 2 Ноя 2018 в 17:56

1 ответ

Лучший ответ

Ваш app.js должен фактически использовать маршруты, использующие app.use().

app.js

var express = require("express");
var routes = require('./routes/index');

var app = express();
const port = process.env.PORT || 3000;

app.use('',routes);
app.listen(port, () => console.log(`app is running on ${port}!`));

... и ваш routes.js router необходимо экспортировать, чтобы его можно было использовать в качестве требования в app.js .

./routes/index.js

var express = require("express");
var router  = express.Router();

//root route
router.get("/", function(req, res){
    res.render("hello world");
});

module.exports = router;
0
ReyHaynes 2 Ноя 2018 в 15:59