节点无法在 Express/react 应用程序中查找视图“错误”
Posted
技术标签:
【中文标题】节点无法在 Express/react 应用程序中查找视图“错误”【英文标题】:Node failed to lookup view "error" in Express/react app 【发布时间】:2019-07-14 05:00:44 【问题描述】:我正在开发我的应用程序,它在几个小时前就开始工作了。但是现在当我启动它时,我收到以下错误。
/lib
中没有/views
目录,但我的src/
中有。它包含error.jade.
我什么都试过了。删除/lib
,重新安装一切...
错误:无法在视图目录中查找视图“错误” “/Users/vemundeldegard/all/server/lib/views” 在 Function.render (/Users/vemundeldegard/all/server/node_modules/express/lib/application.js:580:17) 在 ServerResponse.render (/Users/vemundeldegard/all/server/node_modules/express/lib/response.js:1008:7) 在 /Users/vemundeldegard/all/server/lib/app.js:47:7 在 Layer.handle_error (/Users/vemundeldegard/all/server/node_modules/express/lib/router/layer.js:71:5) 在 trim_prefix (/Users/vemundeldegard/all/server/node_modules/express/lib/router/index.js:315:13) 在 /Users/vemundeldegard/all/server/node_modules/express/lib/router/index.js:284:7 在 Function.process_params (/Users/vemundeldegard/all/server/node_modules/express/lib/router/index.js:335:12) 在下一个(/Users/vemundeldegard/all/server/node_modules/express/lib/router/index.js:275:10) 在 Layer.handle_error (/Users/vemundeldegard/all/server/node_modules/express/lib/router/layer.js:67:12) 在 trim_prefix (/Users/vemundeldegard/all/server/node_modules/express/lib/router/index.js:315:13)
App.js
var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
var BUILD_DIR, PUBLIC_DIR = require('./paths');
var reactRenderer = require('./react-renderer');
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
var app = express();
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded( extended: false ));
app.use(cookieParser());
app.get('/', reactRenderer);
app.use(express.static(BUILD_DIR));
app.use(express.static(PUBLIC_DIR));
// catch 404 and forward to error handler
app.use(function(req, res, next)
next(createError(404));
);
// error handler
app.use(function(err, req, res, next)
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : ;
// render the error page
res.status(err.status || 500);
res.render('error');
);
module.exports = app;
Paths.js:
"use strict";
var path = require('path');
var BUILD_DIR = path.join(__dirname, '..', '..', 'client', 'build');
var PUBLIC_DIR = path.join(__dirname, '..', '..', 'public');
module.exports =
BUILD_DIR: BUILD_DIR,
PUBLIC_DIR: PUBLIC_DIR
;
【问题讨论】:
【参考方案1】:(我会发表评论,但我没有足够的代表)
__dirname
的用法引起了我的注意——您是否可能无意中从不正确的目录(在本例中为 lib
)运行您的应用程序?
【讨论】:
以上是关于节点无法在 Express/react 应用程序中查找视图“错误”的主要内容,如果未能解决你的问题,请参考以下文章
在heroku上部署Nodejs+Express+React+Webpack应用
Node.js - 在 Server.js 上执行 Node 命令(Express + React + Webpack)
AWS Cognito 可以在 EB 上的 Node/Express/React 应用程序中使用吗?