javascript - 使用 Express 服务器和 gulp 查找 View 失败

标签 javascript node.js express

我在使用 gulpserve/r 任务连接 Express 服务器时遇到问题。为了将我的 View 发送到 DOM,我需要 express 来做到这一点。我希望我的服务器作为 gulp 任务运行。服务器运行,但是当我尝试访问本地 url 时,它在浏览器中运行错误:

Error: Failed to lookup view "index" in views directory "C:\Users\User Name\Documents\project\src\scripts"

我的app.js

var http = require('http');
var express = require('express');
var exphbs  = require('express-handlebars');
var path = require('path');

var hbs = exphbs.create({ /* config */ });
var app = express();

//environment variable
var port = process.env.PORT || 8000;

// static files + template engine
app.engine('handlebars', hbs.engine);
app.set('view engine', 'handlebars');
app.set('views', path.join(__dirname, '../scripts'));

app.use('/public', express.static(__dirname + '/public'));

//http request method get json list
app.get('/', function(req, res) {
    res.render('index');
});

app.listen(port); 

我的文件结构如下所示:

project
|-- src
|     |-- css
|     |-- scripts
|          |-- app.js
|     |-- index.html

我错过了什么?

最佳答案

您应该更改此设置:

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

对此:

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

这是因为 index.html 文件驻留在 src 目录中,该目录是脚本所在的 scripts 目录的父目录已执行。

关于javascript - 使用 Express 服务器和 gulp 查找 View 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35005598/

相关文章:

javascript - Javascript音频暂停按钮有效,但不会再次恢复

javascript - 如何等到 ng-repeat 完成循环?

php - 如何使用 Javascript 将页面重定向到 page.php#sample

ajax - 如何从 Node.js 中的 ajax post 返回错误消息

javascript - 带有 socket.io 的 nodejs 中的 UTF-8

javascript - 一旦多个嵌套 forEach 循环中的所有异步操作完成,如何解决 promise ?

node.js - 通过 Angular CLI 创建新的 Angular 项目时出现意外的 json 结束错误

javascript - 从 Angular 4 应用程序接收时表示接收空请求正文

javascript - 如何将对象从 MongoDB 发送到 jade?

javascript - 删除目标评论时遇到问题