javascript - 错误 : ENOENT: no such file or directory, 打开 './views/s.ejs' Nodejs Express

标签 javascript html mysql node.js express

尝试从“routes”渲染“views”目录中的文件,但出现以下错误:

Error:
valid Login
{ [Error: ENOENT: no such file or directory, open './views/s.ejs']
errno: -2,
code: 'ENOENT',
syscall: 'open',
path: './views/s.ejs' }
[0mPOST /afterSignIn [32m200 [0m77.339 ms - -[0m

afterSiginIn.js(Routes Directory)

var ejs = require("ejs");
var mysql = require('./mysql');
var express = require('express');
var router = express.Router();
router.post('/',function(req,res,next)
{enter code here
console.log("reached after sign in checking if user exists");
// check user already exists
var getUser="select * from users where emailid='"+req.param("inputUsername")+"' and password='" + req.param("inputPassword") +"'";
    console.log("Query is:"+getUser);

    mysql.fetchData(function(err,results){
        if(err){
            throw err;
        }
        else 
        {
            if(results.length > 0){
                console.log("valid Login");
                ejs.renderFile('./views/s.ejs', { data: results } , function(err, result) {
                    // render on success
                    if (!err) {
                        res.end(result);
                    }
                    // render or error
                    else {
                        res.end('An error occurred');
                        console.log(err);



app.js

var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

var routes = require('./routes/index');
var users = require('./routes/users');
var signin = require('./routes/signin');
var register = require('./routes/register');
var afterSignIn=require('./routes/afterSignIn');

var app = express();


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

// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', routes);
app.use('/users', users);
app.use('/signin', signin);
app.use('/register', register);
app.use('/afterSignIn', afterSignIn);

s.ejs
<!DOCTYPE html>
<html>
  <head>
    <title>Successful Login</title>
    <link rel='stylesheet' href='/stylesheets/style.css' />
  </head>
  <body>
    <h1>All Users in Database</h1>
    <div>
           <% for(var i in data) 
                {                     
            %>
                    <p><strong>EmailId: </strong><%= data[i].username %></p>
                    <p><strong>Password: </strong><%= data[i].password %></p>
                    <br>       
           <% 
                }  
           %>
    </div>
  </body>
</html>

directory structure:

最佳答案

我将 ejs.renderFile 更改为 res.render 并且它有效。

res.render('s.ejs', { data: results } , function(err, result)

关于javascript - 错误 : ENOENT: no such file or directory, 打开 './views/s.ejs' Nodejs Express,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39812271/

相关文章:

javascript - 在悬停时显示图像并将背景变灰

当字段为空时,PHP 不返回任何行

php - 反斜杠和撇号未正确使用 CodeIgniter 存储在 MySQL 中

javascript - jQuery on 方法与 ajax 响应

javascript - SetTimeout 和 Promise.resolve 不输出字符串,而是输出字符串的数值,为什么?

javascript - 我如何 promise 原生 XHR?

mysql根据另一个表的计数选择行

javascript - 电子邮件被多次发送

php - 在 HTML 中包含 PHP

javascript - 动态创建的 html 的事件监听器