首页 > 解决方案 > 创建基于 Express 的服务器时未找到 server.html

问题描述

这是我的代码:

const express = require('express');
var app = express();
const nunjucks = require('nunjucks');
nunjucks.configure('templates', {
    autoescape: true,
    express: app
});
let host = '127.0.3.1'; 
let port = '9233'; 
let myName = '[RETACTED]';
var d = new Date();
let date = d.getMonth() + "/" + d.getDay() + "/" + d.getFullYear();
let time = Date.now();

let info = {host: host, port: port, name: myName, date: date, time: time}

app.get('/date', function (req, res) {
    res.render('server.html', info);
});

app.listen(port, host, function () {
    console.log("Example app listening on IPv4: " + host +
    ":" + port);
});

我尝试在 Git Bash 上运行它,但出现了这样的错误:

Error: template not found: server.html
    at createTemplate (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_modul
es\nunjucks\src\environment.js:290:15)
    at next (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_modules\nunjuck
s\src\lib.js:330:7)
    at handle (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_modules\nunju
cks\src\environment.js:329:11)
    at C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_modules\nunjucks\src\
environment.js:339:9
    at next (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_modules\nunjuck
s\src\lib.js:328:7)
    at Object.asyncIter (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_mod
ules\nunjucks\src\lib.js:334:3)
    at Environment.getTemplate (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\n
ode_modules\nunjucks\src\environment.js:321:9)
    at Environment.render (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_m
odules\nunjucks\src\environment.js:360:10)
    at NunjucksView.render (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_
modules\nunjucks\src\express-app.js:22:9)
    at tryRender (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_modules\ex
press\lib\application.js:640:10)
Error: template not found: server.html
    at createTemplate (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_modul
es\nunjucks\src\environment.js:290:15)
    at next (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_modules\nunjuck
s\src\lib.js:330:7)
    at handle (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_modules\nunju
cks\src\environment.js:329:11)
    at C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_modules\nunjucks\src\
environment.js:339:9
    at next (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_modules\nunjuck
s\src\lib.js:328:7)
    at Object.asyncIter (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_mod
ules\nunjucks\src\lib.js:334:3)
    at Environment.getTemplate (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\n
ode_modules\nunjucks\src\environment.js:321:9)
    at Environment.render (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_m
odules\nunjucks\src\environment.js:360:10)
    at NunjucksView.render (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_
modules\nunjucks\src\express-app.js:22:9)
    at tryRender (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_modules\ex
press\lib\application.js:640:10)

但是,server.html 与 server.js 位于同一文件夹中。有什么解决方案可以用来修复它吗?我是使用 JS 创建服务器的初学者,我可能需要一些指导。

标签: javascriptexpress

解决方案


由于您已将 nunjucks 配置为在目录中查找视图templates(在nunjucks.configure调用中),因此您应该将server.html文件移动到templates目录中。


推荐阅读