科学松鼠会深度解读ChatGPT编程超能力13个关键章节50个实用案例让初学者轻松理解
在本文中,我们将深入探讨ChatGPT在编程开发领域的强大功能,通过13个关键章节和50个实用案例,让初学者能够轻松理解并应用这些能力。我们将从代码生成、函数创建到数据库查询等方面进行详细解读。
代码生成
ChatGPT不仅能快速生成Web开发任务所需的代码,还能极大地提高我们的工作效率。它可以输出简洁明了的HTML和CSS代码,以及JavaScript函数和数据库查询语句,从而帮助我们轻松完成Web开发任务。
示例1:生成一个联系支持表单
使用提示词“Generate a semantic and accessible HTML and (framework) CSS [UI component] consisting of [component parts]. The [component parts] should be [layout].”,我们可以得到以下示例:
<div class="card">
<h2>联系支持</h2>
<form>
<div class="mb-3">
<label for="name" class="form-label">姓名</label>
<input type="text" id="name" name="name" required />
</div>
<div class="mb-3">
<label for="email" class="form-label">电子邮件</label>
<input type="email" id="email" name="email" required />
</div>
<!-- 其他字段 -->
</form>
</div>
示例2:创建一个JavaScript函数
使用提示词“Write a JavaScript function. It accepts [input] and returns [output].”,我们可以得到以下示例:
function getAvatarLetters(fullName) {
// 分割全名为名字和姓氏
const names = fullName.trim().split(' ');
let avatar = '';
// 遍历每个名字并将其第一个字符添加到头像中
for (let i = 0; i <= Math.min(names.length -1,2); i++) {
avatar += names[i][0];
if(i<names.length-1){
avatar += ' ';
if(avatar.length >2){
avatar = avatar.substring(0,2);
}
} else{
break;
}
}
return avatar;
}
// 使用示例:
const result = getAvatarLetters("张三丰");
console.log(result); // 输出: 张三
数据库API
ChatGPT还能帮助我们快速构建基于Express.js与MongoDB的API,以便于获取当前用户的个人资料信息。
示例3:创建Express.js API获取当前用户信息
使用提示词“Write an Express.js API to fetch the current users profile information. It should make use of MongoDB.”,我们可以得到以下示例:
const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
const app = express();
mongoose.connect('mongodb://localhost/myapp', { useNewUrlParser: true })
.then(() => console.log('MongoDB连接成功'))
.catch((err) => console.error(`MongoDB连接失败:${err}`));
// 创建用户模型
const userSchema = new mongoose.Schema({
name: String,
email: String,
password: String
});
const User = mongoose.model(User, userSchema);
// 添加中间件
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
// 定义路由规则(假设已经通过身份验证获取到当前用户ID)
app.get('/api/profile', (req, res) => {
const userId = req.userId;
User.findById(userId)
.then(user => {
if (!user) res.status(404).send({ message: '找不到用户信息' });
else res.send({ name: user.name, email: user.email });
})
.catch(err => res.status(500).send({ message:'获取用户信息失败' }));
});
// 启动服务器端口3000监听请求。
var port=3000;
app.listen(port,function(){
console.log(`服务器已启动,端口号:${port}`);
});
这个API定义了一个/api/profile GET路由,该路由用于根据当前登录用户名取得个人资料。在处理程序中,我们首先从请求对象中获得当前登录用户名,然后使用User.findById()方法从数据库检索该用户名对应的数据。如果发生错误,将返回500状态码;如果找不到相关数据,则返回404状态码;否则,将包含姓名及邮箱地址格式化后的数据发送给客户端。