通过使用chatgpt 逐步解决egg项目学习的一些问题【笔记】
我的需求提问
创建一个html页面,这个页面包括通过学生id查询学生详情的组件,和通过学生姓名,身份证,选择班级的组件,并把代码告诉我
chatgpt回答
好的,以下是一个包含两个组件的HTML页面,分别是通过学生ID查询学生详情和通过姓名、身份证号码和班级选择查询学生详情。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>查询学生信息</title>
</head>
<body>
<h1>查询学生信息</h1>
<!-- 查询学生ID -->
<div>
<h2>通过学生ID查询学生详情</h2>
<input type="text" id="student-id-input" placeholder="请输入学生ID">
<button id="get-student-by-id-btn">查询</button>
<br><br>
<div id="student-info"></div>
</div>
<hr>
<!-- 查询学生姓名/身份证号码/班级选择 -->
<div>
<h2>通过学生姓名、身份证号码和班级选择查询学生详情</h2>
<label for="student-name-input">姓名:</label>
<input type="text" id="student-name-input"><br><br>
<label for="student-id-number-input">身份证号码:</label>
<input type="text" id="student-id-number-input"><br><br>
<label for="student-class-select">班级:</label>
<select id="student-class-select">
<option value=""></option>
<option value="一年级">一年级</option>
<option value="二年级">二年级</option>
<option value="三年级">三年级</option>
</select><br><br>
<button id="get-student-by-condition-btn">查询</button>
<br><br>
<div id="student-info-2"></div>
</div>
<!-- 引入jQuery库 -->
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<!-- js代码 -->
<script>
// 通过学生ID查询学生详情
$('#get-student-by-id-btn').click(function () {
let studentId = $('#student-id-input').val();
if (studentId) {
$.ajax({
url: '/api/getStudentById',
type: 'GET',
data: { id: studentId },
success: function (res) {
if (res.code === 0) {
$('#student-info').html(`
姓名:${res.data.name};<br>
年龄:${res.data.age};<br>
身份证号码:${res.data.idNumber};<br>
班级:${res.data.class};<br>
`);
} else {
$('#student-info').text('查询失败');
}
},
error: function () {
$('#student-info').text('查询失败');
}
});
} else {
$('#student-info').text('请输入学生ID');
}
});
// 通过学生姓名、身份证号码和班级选择查询学生详情
$('#get-student-by-condition-btn').click(function () {
let name = $('#student-name-input').val();
let idNumber = $('#student-id-number-input').val();
let className = $('#student-class-select').val();
$.ajax({
url: '/api/getStudentByCondition',
type: 'POST',
data: { name, idNumber, class: className },
success: function (res) {
if (res.code === 0) {
$('#student-info-2').html(`
姓名:${res.data.name};<br>
年龄:${res.data.age};<br>
身份证号码:${res.data.idNumber};<br>
班级:${res.data.class};<br>
`);
} else {
$('#student-info-2').text('查询失败');
}
},
error: function () {
$('#student-info-2').text('查询失败');
}
});
});
</script>
</body>
</html>
需要注意的是,上述代码仅为示例代码,具体实现需要根据后端接口的返回值以及前端的具体需求进行相应的修改。同时,需要在服务器端实现两个接口'/api/getStudentById'
为了解决跨域等问题 我向chatgpt提问
egg 接口传递一个网页
chatgpt回答
Egg是一个基于Node.js和Koa的Web开发框架,可以用于构建企业级的应用程序和API接口。如果您想通过Egg接口传递网页,您需要在后端使用模板引擎来渲染HTML页面,并将其响应给前端请求。以下是一个简单的示例代码:
// 引入Egg框架
const egg = require('egg');
// 创建应用实例
const app = egg();
// 定义路由
app.get('/', async (ctx) => {
// 渲染HTML页面
const html = await ctx.render('index.html', { title: 'My Page Title' });
// 响应HTML页面
ctx.body = html;
});
// 监听端口
app.listen(3000);
上述代码中,我们首先引入了Egg框架,并创建了一个应用实例。接着我们定义了一个路由,当用户访问根路径时,会渲染名为index.html的HTML页面,并将其响应给前端请求。最后我们监听了端口号3000,启动了应用程序。
当然,具体的实现方式还需要根据您的具体需求和开发环境进行调整。希望以上信息能够对您有所帮助!
由于后台报错
at ContextView.[contextView#render] (F:\后端代码\nodejs\egg-test2\node_modules\egg-view\lib\context_view.js:68:5)
at async HomeController.index (F:\后端代码\nodejs\egg-test2\app\controller\home.js:10:5)
at async F:\后端代码\nodejs\egg-test2\node_modules\egg-development\app\middleware\egg_loader_trace.js:9:50
at async xframe (F:\后端代码\nodejs\egg-test2\node_modules\egg-security\lib\middlewares\xframe.js:7:5)
at async xssProtection (F:\后端代码\nodejs\egg-test2\node_modules\egg-security\lib\middlewares\xssProtection.js:7:5) at async nosniff (F:\后端代码\nodejs\egg-test2\node_modules\egg-security\lib\middlewares\nosniff.js:8:5)
at async noopen (F:\后端代码\nodejs\egg-test2\node_modules\egg-security\lib\middlewares\noopen.js:8:5)
at async session (F:\后端代码\nodejs\egg-test2\node_modules\koa-session\index.js:41:7)
at async bodyParser (F:\后端代码\nodejs\egg-test2\node_modules\koa-bodyparser\index.js:91:5)
at async F:\后端代码\nodejs\egg-test2\node_modules\koa-static-cache\index.js:41:56
generatedMessage: false
code: "ERR_ASSERTION"
actual: ""
expected: true
operator: "=="
pid: 4956
hostname: DESKTOP-801VTT1
于是我直接将错误结果返回给chatgpt直接不动脑子
提问:ERROR 4956 nodejs.AssertionError: Can't find viewEngine
chatgpt的回答:
这个错误提示表明 Egg 框架在渲染视图模板时找不到对应的模板引擎。
要解决此问题,您需要确保已经正确配置了模板引擎,并将其添加到了 Egg 的插件列表中。以下是一个示例代码,演示如何使用 Nunjucks 模板引擎和 egg-view-nunjucks 插件来渲染 HTML 视图:
- 安装依赖
首先,我们需要安装 egg-view-nunjucks 插件和 nunjucks 模板引擎:
npm install egg-view-nunjucks nunjucks --save
- 配置插件
在 Egg 项目的 config/plugin.js 文件中添加以下内容:
exports.nunjucks = {
enable: true,
package: 'egg-view-nunjucks',
};
上述代码告诉 Egg 框架启用 nunjucks 模板引擎,并将其封装为 egg-view-nunjucks 插件。
- 配置模板路径
在 Egg 项目的 config/config.default.js 文件中添加以下内容:
exports.view = {
defaultViewEngine: 'nunjucks',
mapping: {
'.html': 'nunjucks',
},
};
上述代码指定了视图模板的默认引擎为 nunjucks,并将 .html 后缀映射到 nunjucks 引擎。
- 创建模板文件
在 Egg 项目的 app/view 目录下创建一个名为 index.html 的模板文件,内容可以按照您的需求自行编写。
- 编写控制器
在 Egg 项目的 app/controller 目录下创建一个名为 home.js 的控制器文件,内容如下所示:
const Controller = require('egg').Controller;
class HomeController extends Controller {
async index() {
await this.ctx.render('index.html', { title: 'My Page Title' });
}
}
module.exports = HomeController;
上述代码定义了一个名为 HomeController 的控制器类,并创建了一个名为 index 的方法用于渲染 index.html 模板文件。
- 配置路由
最后,在 Egg 项目的 app/router.js 文件中添加以下内容:
module.exports = (app) => {
app.get('/', 'home.index');
};
上述代码将根路径 / 映射到 HomeController 控制器的 index 方法中。
希望以上信息能够对您有所帮助!
参考上诉方法
完美渲染网页!

chatgpt的强大真的出乎我的意料,能够根据逻辑一步步解决我的问题,就像一个学习阶段非常懂我的老师并且知识量丰富程度非常离谱
通过使用chatgpt 逐步解决egg项目学习的一些问题【笔记】的更多相关文章
- Egg入门学习(二)---理解service作用
在上一篇文章 Egg入门学习一 中,我们简单的了解了Egg是什么东西,且能做什么,这篇文章我们首先来看看官网对Egg的整个框架的约定如下,及约定对应的目录是做什么的,来有个简单的理解,注意:我也是按照 ...
- 转:从开源项目学习 C 语言基本的编码规则
从开源项目学习 C 语言基本的编码规则 每个项目都有自己的风格指南:一组有关怎样为那个项目编码约定.一些经理选择基本的编码规则,另一些经理则更偏好非常高级的规则,对许多项目而言则没有特定的编码规则,项 ...
- 中小研发团队架构实践之生产环境诊断工具WinDbg 三分钟学会.NET微服务之Polly 使用.Net Core+IView+Vue集成上传图片功能 Fiddler原理~知多少? ABP框架(asp.net core 2.X+Vue)模板项目学习之路(一) C#程序中设置全局代理(Global Proxy) WCF 4.0 使用说明 如何在IIS上发布,并能正常访问
中小研发团队架构实践之生产环境诊断工具WinDbg 生产环境偶尔会出现一些异常问题,WinDbg或GDB是解决此类问题的利器.调试工具WinDbg如同医生的听诊器,是系统生病时做问题诊断的逆向分析工具 ...
- koa和egg项目webpack热更新实现
背景 在用Node.js+Webpack构建的方式进行开发时, 我们希望能实现修改代码能实时刷新页面UI的效果. 这个特性webpack本身是支持的, 而且基于koa也有现成的koa-webpack- ...
- PHP项目学习——控件
主要是在项目学习中总结的一些东西 动态效果 flashbar滚动条,增加动态效果,直接嵌入html中 <!--flash滚动条--> <object classid="cl ...
- PHP项目学习2
通过<PHP项目学习1>基本上可以了解项目的大致结构.内容,现在直接从代码入手,开始coding吧. 现在部署环境中建立一个myonline的文件夹,便于放置我们的项目
- Spring Boot 项目学习 (四) Spring Boot整合Swagger2自动生成API文档
0 引言 在做服务端开发的时候,难免会涉及到API 接口文档的编写,可以经历过手写API 文档的过程,就会发现,一个自动生成API文档可以提高多少的效率. 以下列举几个手写API 文档的痛点: 文档需 ...
- Spring Boot 项目学习 (三) Spring Boot + Redis 搭建
0 引言 本文主要介绍 Spring Boot 中 Redis 的配置和基本使用. 1 配置 Redis 1. 修改pom.xml,添加Redis依赖 <!-- Spring Boot Redi ...
- Spring Boot 项目学习 (一) 项目搭建
0 引言 本文主要记录借用Idea 开发环境下,搭建 Spring Boot 项目框架的过程. 1 系列文档目录 Spring Boot 项目学习 (一) 项目搭建 Spring Boot 项目学习 ...
- Spring Boot 项目学习 (二) MySql + MyBatis 注解 + 分页控件 配置
0 引言 本文主要在Spring Boot 基础项目的基础上,添加 Mysql .MyBatis(注解方式)与 分页控件 的配置,用于协助完成数据库操作. 1 创建数据表 这个过程就暂时省略了. 2 ...
随机推荐
- LeetCode系列之 (JavaScript) => 88. 合并两个有序数组
题目描述: [Leetcode 题目链接]:88. 合并两个有序数组 - 力扣(LeetCode) (leetcode-cn.com) 解题思路分析: 在nums1中找到nums2 插入的位置,然后在 ...
- Go语言中密码加密校验
使用go自带的库bcrypt bcrypt是不可逆的加密算法,无法通过解密密文得到明文. bcrypt和其他对称或非对称加密方式不同的是,不是直接解密得到明文,也不是二次加密比较密文,而是把明文和存储 ...
- 【JavaScript】JS写法随笔(二) JS动态生成表格
主要思路:通过Ajax请求后端接口并拿到结果list之后,然后通过DOM获取tbody并向tbody中添加行.单元格. $("#calculate").click(function ...
- 通过modbus+socket+GPRS采集硬件数据
# !/usr/bin/python # -*- coding: UTF-8 -*- import sys import os TESTCASE = os.path.dirname(os.path.a ...
- 关闭Google自动更新
一.禁用任务计划 二.禁用更新服务 三.重命名更新程序 首先找到谷歌浏览器的安装位置
- 05.常用 API 第二部分
一.Object 类 是类层次结构的根 (父) 类. String toString () 返回该对象的字符串表示,其实该字符串内容就是对象的类型 + @ + 内存地址值. 由于 toString ...
- Selenium显式、隐式等待
显式等待: 显式等待是你在代码中定义等待一定条件发生后再进一步执行你的代码.简单的说就是在指定时间内,一直等待某个条件成立,条件成立后立即执行定位元素的操作:如果超过这个时间条件仍然没有成立,则会抛出 ...
- Centos 配置网络自启和静态IP和主机名
1. 修改配置文件 vim /etc/sysconfig/network-scripts 2. vim /etc/sysconfig/network-scripts/ifcfg-eth0 BOOTPR ...
- 简介及spring mvc初体验
一.C\S和B\S C/S C/S 是 Client/Server 的简写,简称客户端/服务器模式.例如 QQ 是客户端和服务器模式,首先安装一个客户端到个人电脑,然后登入到腾讯服务器. 缺点:更新不 ...
- WebLogic & Kubernetes
搭建kubernetes集群环境 安装前的规划 主机名 地址 角色 组件 k8s-master 192.168.56.118 k8s-master etcd.kube-apiserver.kube-c ...