Ошибка: не удалось найти представление "Спасибо, что присоединились к нашему списку ожидания!"в каталоге представлений "C: \ Users \ mchio \ JoinUs \ views" - PullRequest
0 голосов
/ 04 января 2019

Я учусь на Node.js.Мне нужна помощь в исправлении этой ошибки в Express.ОБРАТИТЕ ВНИМАНИЕ, код работает должным образом, то есть он принимает адрес электронной почты нового пользователя, обновляет базу данных MySQL, а затем увеличивает счетчик пользовательского интерфейса.

Проблема в том, что возвращаются как успешные сообщения об ошибках «Спасибо за присоединение к нашему списку ожидания», так и «Ошибка: не удалось просмотреть ...».

Я провел несколько часоврасчесываем stackoverflow и другие сайты, ищущие помощи, но успеха.Это моя первая публикация здесь, пожалуйста, помогите.Спасибо!

Мой код: app.js

var express = require('express');

var mysql = require('mysql');


var bodyParser = require('body-parser');

var app = express();

var path = require('path');

app.set('views', path.join(__dirname, 'views'));

app.engine('ejs', require('ejs').renderFile);

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

app.use(bodyParser.urlencoded({extended: true})); 


app.get("/", function(req, res){

    var q = "SELECT COUNT(*) AS count FROM users";
    connection.query(q, function (err, results){
        if (err) throw err;
        var count = results[0].count;
        res.render('home', {counter: count});  
    });
});



app.post("/register", function(req, res){
    var newuser = {
        email: req.body.email
    };

    connection.query('INSERT INTO users SET ?', newuser, function (err, results){
        if (err) throw err;
        res.render("Thank you for joining our wait list!");
    });

});

Структура каталога приложений:

C: \ Users \ mchio \ JoinUs

\ node_modules(папка), app.js, package.json, package-lock.json (файлы)

\ views (папка)

| --home.ejs (файл) |

файл home.ejs

<h1>Welcome to JoinUS.COM</h1>

<p>Please enter your email to join <strong><%=counter%></strong> others on our waitlist. We are a fun START UP focusing on AI. </p>

<form method="POST" action="/register">
 <input type="text" name="email" class="form" placeholder="Enter Your Email">
 <button>Join Now</button>
</form>`enter code here

1 Ответ

0 голосов
/ 04 января 2019

Вот проблема

res.render("Thank you for joining our wait list!");

Итак, вы передали неправильный параметр.Это должно быть viewName.

Таким образом, вы можете передать файл joinUs.ejs в папку просмотра.После этого вы можете сделать что-то вроде этого

res.render('joinUs');

В вашем коде, когда nodeJs не могут найти представление, это вызовет ошибку «Failed to lookup view», как вы видите.И тогда он вернет строку, которую вы передали в методе, на экран пользователя «Спасибо, что присоединились к нашему списку ожидания».Вот почему у вас есть 2 результата одновременно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...