javascript - 创建基于 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 创建服务器的初学者,我可能需要一些指导。
解决方案
由于您已将 nunjucks 配置为在目录中查找视图templates
(在nunjucks.configure
调用中),因此您应该将server.html
文件移动到templates
目录中。
推荐阅读
- javascript - 随机化颜色对 onclick (CSS, JavaScript)
- sql - 在 Oracle 中增加一天但丢失小时和分钟,格式也在发生变化
- linux - 如果 Input_file 中的列存在于查询文件中,则打印“YES”以及 file_name 中表中的列作为标题
- reactjs - 我们如何将一个组件的功能使用到另一个js文件中
- javascript - 如何使用javascript过滤对象数组中的对象数组?
- wpf - 用计算的比率绑定 2 个文本框
- reactjs - 为什么测试会影响组件中未使用的减速器?
- javascript - 将数组中对象和嵌套对象的键值对重新组合到新数组中
- webview2 - webView.EnsureCoreWebView2Async(null) 给出一个异常类未注册
- django - Django:像 blog.user.username 这样的表达式是否在 Django 中执行了额外的数据库操作?