错误:ENOENT:没有这样的文件或目录,打开 './views/s.ejs' Nodejs Express
Posted
技术标签:
【中文标题】错误:ENOENT:没有这样的文件或目录,打开 \'./views/s.ejs\' Nodejs Express【英文标题】:Error: ENOENT: no such file or directory, open './views/s.ejs' Nodejs Express错误:ENOENT:没有这样的文件或目录,打开 './views/s.ejs' Nodejs Express 【发布时间】:2017-02-10 06:09:50 【问题描述】:试图从 'routes' 中的 'views' 目录渲染文件,但出现以下错误:
错误: 有效登录 [错误:ENOENT:没有这样的文件或目录,打开'./views/s.ejs'] 错误号:-2, 代码:'ENOENT', 系统调用:'打开', 路径:'./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:
【问题讨论】:
【参考方案1】:我将 ejs.renderFile 更改为 res.render 并且它起作用了。
res.render('s.ejs', data: results , function(err, result)
【讨论】:
【参考方案2】:你不需要指定view
的路径,express模板提供了这个知识:
res.render('s.ejs', data: 'some data');
如果视图中有用户目录,并且在 profile.ejs 中,您只需 res.render('user/profile.ejs')
,等等。
【讨论】:
已经试过了:DB 结果:[object Object] 有效登录 [错误:ENOENT:没有这样的文件或目录,打开's.ejs'] errno:-2,代码:'ENOENT' ,系统调用:'open',路径:'s.ejs' [0mPOST /afterSignIn [32m200 [0m104.060 ms - -[0m以上是关于错误:ENOENT:没有这样的文件或目录,打开 './views/s.ejs' Nodejs Express的主要内容,如果未能解决你的问题,请参考以下文章
错误:ENOENT:没有这样的文件或目录,打开“/moviedata.json”
Heroku CLI 登录失败并出现错误“错误:ENOENT:没有这样的文件或目录,打开 'H:/_netrc'”
importSchema GraphQL 错误:ENOENT:没有这样的文件或目录,打开“./schema.graphql”
电子应用程序错误:ENOENT:没有这样的文件或目录,打开“/.env”