Using route express node.js but express.Router, getting as undefined

My default router code / index

/* GET home page. */
exports.index = function(req, res){
  res.render('user', { title: 'Abcd' });
};

var express = require('express');

var router = express.Router();

/* GET home page. */
router.get('/', function(req, res) {
    res.render('index', { title: 'Express' });
});

router.get('/helloworld', function(req, res) {
    res.render('helloworld', { title: 'Hello, World!' })
});

module.exports = router;

get an error because it cannot call the get method from undefined. I'm new to node js, please help me out.

+4
source share
2 answers

, - post() get(). use(), , , .

:

EDIT: "" http-.

app.js

var http = require('http');
var express = require('express');

// Requiring express exports a function that creates the application. Call it!
var app = express();

// Set port to listen to
app.set('port', process.env.PORT || 3000);

// Set view engine
app.set('view engine', 'jade');

// Tell express to use the router middleware
// Can be omitted if precedence doesn't matter 
// (e.g. for loading static resources)
app.use(app.router);

// Add callback handler for home (/) route
app.get('/', function(req, res) {
  res.render('index', { title: 'Express' });
});

// Create http server by passing "app" to it:
http.createServer(app).listen(app.get('port'), function() {
  console.log('Express server listening on port ' + app.get('port'));
});

, ...

/index.jade

doctype 5
html
  head
    meta(charset='utf-8')
    title #{title}
    meta(name='viewport', content='width=device-width, initial-scale=1.0')
  body
    div
      h1 Gotcha! Title is "#{title}"

... ...

$ node app.js

... node/express/jade!

+1

4.x. , 3.x.

+7

Source: https://habr.com/ru/post/1539772/


All Articles