0

I am trying to console.log my data get post from form to /persons endpoint.But getting error undefined or Error: No default engine was specified and no extension was provided.

ERROR

listening
undefined
Error: No default engine was specified and no extension was provided.
 at new View (/home/mohit/edx-
proj/node_modules/express/lib/view.js:61:11)
at EventEmitter.render (/home/mohit/edx-
proj/node_modules/express/lib/application.js:570:12)
at ServerResponse.render (/home/mohit/edx-
proj/node_modules/express/lib/response.js:1008:7)
at /home/mohit/edx-proj/server.js:42:9
at Layer.handle [as handle_request] (/home/mohit/edx-
proj/node_modules/express/lib/router/layer.js:95:5)
at next (/home/mohit/edx-
proj/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/home/mohit/edx-
proj/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/home/mohit/edx-
proj/node_modules/express/lib/router/layer.js:95:5)
at /home/mohit/edx-
proj/node_modules/express/lib/router/index.js:281:22
at Function.process_params (/home/mohit/edx-
proj/node_modules/express/lib/router/index.js:335:12)

server.js file

var express = require('express');
var sqlite3 = require('sqlite3');
var formidable = require('formidable');
var bodyParser = require('body-parser');
var urlencodedParser = bodyParser.urlencoded({ extended: false })
var app=express();
app.get(`/`,function(request,response){
      response.writeHead(200, {'Content-Type': 'text/html'});
      response.write("sfewqcfnvsjv")
      response.write('<form action="/persons" method="post" >');
      response.write('<input type="number" name="filetoupload"><br>');
      response.write('<input type="text" name="filetoupload"><br>');
      response.write('<input type="text" name="filetoupload"><br>');
      response.write('<input type="submit">');
      response.write('</form>');
      response.end()
 });

app.post('/persons',urlencodedParser,function(req, res){
    console.log(req.body);
    res.render('persons',{qs:req.query});
});

app.listen(8000,function(){
    console.log("listen:8000")
})

Please let me know what I am missing and thank you in advance.

antzshrek
  • 9,276
  • 5
  • 26
  • 43

1 Answers1

1

You haven't specified which of the view engine,

that is either:

To render in HTML

app.set('view engine', 'html');

or even in json format

res.json({ error: err })

or to render in ejs

app.set('view engine', 'ejs');

or to render in jade/pug

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

app.set('view engine', 'pug');

Note: you're to use either jade or pug depending on what format your files are, and not to use app.set('view engine', 'jade'); app.set('view engine', 'pug'); together, you can read more about jade and pug

You need to specify that.

antzshrek
  • 9,276
  • 5
  • 26
  • 43