получить ошибку, в то время как console.log мои данные формы на мой сервер

Я пытаюсь console.log отправить мои данные из формы в конечную точку /persons. Но получаю сообщение об ошибке undefined или 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

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")
})

Пожалуйста, дайте мне знать, что мне не хватает, и заранее спасибо.


person MRITUNJAY GOUTAM    schedule 30.11.2017    source источник
comment
stackoverflow.com/questions/23595282/   -  person wrangler    schedule 30.11.2017
comment
я добавил app.set('движок просмотра', 'html'); но ошибка Не удается найти модуль 'html'   -  person MRITUNJAY GOUTAM    schedule 30.11.2017


Ответы (1)


Вы не указали, какой из движков просмотра,

то есть либо:

Отрисовка в HTML

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

или даже в формате json

res.json({ error: err })

или рендерить в ejs

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

или сделать в jade/pug

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

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

Примечание. вы должны использовать либо jade, либо pug в зависимости от формата ваших файлов, а не использовать app.set('view engine', 'jade'); app.set('view engine', 'pug'); вместе, вы можете подробнее о jade и мопс

Вам нужно указать это.

person antzshrek    schedule 30.11.2017
comment
А undefined прямо перед ошибкой связано с тем, что req.body не существует в объекте req. Возможно, вы POST работаете с недопустимым типом контента. - person sshow; 30.11.2017
comment
просто примечание: Джейд = мопс - person YouneL; 30.11.2017