长沙网站建设 鼎誉wordpress本地数据库
2026/4/18 10:50:45 网站建设 项目流程
长沙网站建设 鼎誉,wordpress本地数据库,网站建设任职资格,网页设计作品我的家乡留言板1.0 完整留言板1.0资源 // 需求#xff1a;根据用户输入的地址#xff0c;返回对应的页面 // 1- 搭建服务器 // 2- 根据不同的请求#xff0c;返回对应的页面 const http require(http); const fs require(fs); const path require(path); const mime require(…留言板1.0完整留言板1.0资源// 需求根据用户输入的地址返回对应的页面 // 1- 搭建服务器 // 2- 根据不同的请求返回对应的页面 const http require(http); const fs require(fs); const path require(path); const mime require(mime); const server http.createServer(); server.on(request, (req, res) { console.log(req.url:, req.url); // 根据不同的req.url 返回不同的页面 if (req.url.startsWith(/index) || req.url /) { //首页: 读取首页内容返回给浏览器解析 fs.readFile(path.join(__dirname, pages/index.html), (err, data) { if (err) { return console.log(err); } res.end(data); // 返回给浏览器解析 }) } else if (req.url.startsWith(/add)) { //添加页面 fs.readFile(path.join(__dirname, pages/add.html), (err, data) { if (err) { return console.log(err); } res.end(data); // 返回给浏览器解析 }) } else if (req.url.startsWith(/assets)) { //静态资源 // 服务器之间读取对应文件返回即可 fs.readFile(path.join(__dirname, req.url), (err, data) { if (err) { return console.log(err); } // 给每个资源设置明确的mime类型 res.setHeader(content-type, mime.getType(req.url)); res.end(data); }) } else { res.end(404); } }) server.listen(9999, () console.log(http://localhost:9999 服务器已启动));留言板2.0完整留言板2.0资源目标 动态渲染 留言板案例 1- 搭建服务器 2- 首页留言动态渲染 数据 模板 1- 读取数据库data.json中的数据 2- 配合模板引擎 进行渲染 3- 把生成好页面结构返回给浏览器解析 3- 删除留言 1- 获取前端传递id 2- 根据id去数据库中删除对应的 数据 数据以字符串形式存储要以数组的形式去操作 1- 读取data.json数据转出js的数组 2- 从数组中删除 3- 删除完成后在把数组 写回 data.json 中 3- 删除完成后跳转到首页 4- 添加留言 1- 获取 前端提交表单数据 2- 把数据添加到数据库中 数据以字符串形式存储要以数组的形式去操作 1- 读取data.json数据转出js的数组 2- 向数组中添加 3- 添加完成后在把数组 写回 data.json 中 3- 添加完成后跳转到首页 get post// 1-搭建服务器 const http require(http); const fs require(fs); const path require(path); const template require(art-template); const mime require(mime); const url require(url); const moment require(moment); const queryString require(querystring); const server http.createServer(); const dataPath path.join(__dirname, data/data.json); server.on(request, (req, res) { console.log(req.url:, req.url); // 路由功能 if (req.url.startsWith(/index) || req.url /) { //首页 // 1- 读取数据库data.json中的数据 // 2- 配合模板引擎 进行渲染 // 3- 把生成好页面结构返回给浏览器解析 fs.readFile(dataPath, utf8, (err, data) { if (err) { return console.log(err); } // 获取到了数据 data JSON.parse(data); //json--js对象 console.log(data); // 渲染 let str template(path.join(__dirname, pages/index.html), data); // 返回给浏览器解析 res.end(str); }) } else if (req.url.startsWith(/add)) { // add.html // 直接读取 add页面返回即可 fs.readFile(path.join(__dirname, pages/add.html), (err, data) { if (err) { return console.log(err); } res.end(data); //返回读取的页面 }) } else if (req.url.startsWith(/assets)) { //静态资源 // 直接读取静态资源返回即可 fs.readFile(path.join(__dirname, req.url), (err, data) { if (err) { return console.log(err); } // 给返回资源设置明确的mime类型 res.setHeader(content-type, mime.getType(req.url)); // 返回读取数据 res.end(data); }) } else if (req.url.startsWith(/delete)) { // 删除 // 1- 获取前端传递id // 2- 根据id去数据库中删除对应的 数据 // 数据以字符串形式存储要以数组的形式去操作 // 1- 读取data.json数据转出js的数组 // 2- 从数组中删除 // 3- 删除完成后在把数组 写回 data.json 中 // 3- 删除完成后页面重新渲染 // 1- 获取前端传递id let id url.parse(req.url, true).query.id; // 2- 读取data.json数据转出js的数组 fs.readFile(dataPath, utf8, (err, data) { if (err) { return console.log(err); } data JSON.parse(data); // 转出js的数组 // // console.log(data); // // 数组删除 splice(从哪删 删几个) 拿到是id 数据要根据下标去删除 // // 获取当前id对应下标 // // let index data.list.findIndex(function (v) { // // return v.id id; // // }) // 根据id 找下标 let index data.list.findIndex(v v.id id); // console.log(index); data.list.splice(index, 1); data JSON.stringify(data); // 写回data.json中 fs.writeFile(dataPath, data, (err) { if (err) { return console.log(err); } // 跳转到首页 // 跳转是浏览器的行为 服务器无法直接控制浏览器跳转 但是服务器可以通知浏览器跳转 // 浏览器会按照服务器通知跳转到对应的页面 res.statusCode 302; //设置状态码 通知浏览器进行跳转 res.setHeader(location, /index); // 设置跳转的地址 res.end(); }) }) // res.end(id); } else if (req.url.startsWith(/submit) req.method GET) { // get 添加 // 1- 获取 前端提交表单数据 // 2- 把数据添加到数据库中 // 数据以字符串形式存储要以数组的形式去操作 // 1- 读取data.json数据转出js的数组 // 2- 向数组中添加 // 3- 添加完成后在把数组 写回 data.json 中 // 3- 添加完成后跳转到首页 let info url.parse(req.url, true).query; // 添加id 和 创建时间 info.id Date.now(); // 获取当前的时间戳 info.created moment().format(YYYY年MM月DD日 HH:mm:ss); console.log(info); // 读取data.json数据转出js的数组 fs.readFile(dataPath, utf8, (err, data) { if (err) { return console.log(err); } data JSON.parse(data); //json--js对象 data.list.push(info); //添加 data JSON.stringify(data); // js ---js fs.writeFile(dataPath, data, (err) { if (err) { return console.log(err); } //跳转到首页 重定向 res.statusCode 302; res.setHeader(location, /index); res.end(); }) }); } else if (req.url.startsWith(/submit) req.method POST) { // post 添加 // 1- 获取 前端提交表单数据 // 2- 把数据添加到数据库中 // 数据以字符串形式存储要以数组的形式去操作 // 1- 读取data.json数据转出js的数组 // 2- 向数组中添加 // 3- 添加完成后在把数组 写回 data.json 中 // 3- 添加完成后跳转到首页 // 前端以post方式给后台传递了数据 会触发事件 let str ; let num 0; req.on(data, function (chunk) { // chunk 块 片段 str chunk; console.log(num); }); // 当后台数据接收完成时 触发end事件 req.on(end, function () { console.log(str); // nickname11title11content11 查询字符串 let info queryString.parse(str); // 添加id 和创建时间 info.id Date.now(); info.created moment().format(YYYY年MM月DD日 HH:mm:ss); console.log(info); // 读取data.json数据转出js的数组 fs.readFile(dataPath, utf8, (err, data) { if (err) { return console.log(err); } data JSON.parse(data); //json -- js对象 data.list.push(info); //添加 data JSON.stringify(data); // js-- js fs.writeFile(dataPath, data, (err) { if (err) { return console.log(err); } // 跳转到首页 res.statusCode 302; res.setHeader(location, /index); res.end(); }) }) }) } else { // 404 res.end(404); } }); server.listen(9999, () { console.log(http://localhost:9999 服务器已启动) })留言板2.1完整留言板2.1资源目标 动态渲染 留言板案例 1- 搭建服务器 2- 首页留言动态渲染 数据 模板 1- 读取数据库data.json中的数据 2- 配合模板引擎 进行渲染 3- 把生成好页面结构返回给浏览器解析 3- 删除留言 1- 获取前端传递id 2- 根据id去数据库中删除对应的 数据 数据以字符串形式存储要以数组的形式去操作 1- 读取data.json数据转出js的数组 2- 从数组中删除 3- 删除完成后在把数组 写回 data.json 中 3- 删除完成后跳转到首页 4- 添加留言 1- 获取 前端提交表单数据 2- 把数据添加到数据库中 数据以字符串形式存储要以数组的形式去操作 1- 读取data.json数据转出js的数组 2- 向数组中添加 3- 添加完成后在把数组 写回 data.json 中 3- 添加完成后跳转到首页 get post// 1-搭建服务器 const http require(http); const fs require(fs); const path require(path); const template require(art-template); const mime require(mime); const url require(url); const moment require(moment); const queryString require(querystring); const server http.createServer(); const dataPath path.join(__dirname, data/data.json); server.on(request, (req, res) { console.log(req.url:, req.url); // 路由功能 if (req.url.startsWith(/index) || req.url /) { //首页 // 1- 读取数据库data.json中的数据 // 2- 配合模板引擎 进行渲染 // 3- 把生成好页面结构返回给浏览器解析 readData(function (data) { //data就是读取到数据 //读取到数据后 执行逻辑 // 对数据进行排序 // data.list.sort(function (a, b) { // return b.id - a.id; // }) data.list.sort((a, b) b.id - a.id); // console.log(data); let str template(path.join(__dirname, pages/index.html), data); // 渲染 res.end(str); }) } else if (req.url.startsWith(/add)) { // add.html // 直接读取 add页面返回即可 fs.readFile(path.join(__dirname, pages/add.html), (err, data) { if (err) { return console.log(err); } res.end(data); //返回读取的页面 }) } else if (req.url.startsWith(/assets)) { //静态资源 // 直接读取静态资源返回即可 fs.readFile(path.join(__dirname, req.url), (err, data) { if (err) { return console.log(err); } // 给返回资源设置明确的mime类型 res.setHeader(content-type, mime.getType(req.url)); // 返回读取数据 res.end(data); }) } else if (req.url.startsWith(/delete)) { // 删除 // 1- 获取前端传递id // 2- 根据id去数据库中删除对应的 数据 // 数据以字符串形式存储要以数组的形式去操作 // 1- 读取data.json数据转出js的数组 // 2- 从数组中删除 // 3- 删除完成后在把数组 写回 data.json 中 // 3- 删除完成后页面重新渲染 let id url.parse(req.url, true).query.id; // 获取id readData(function (data) { // data是读取的数据 let index data.list.findIndex(v v.id id); //找下标 data.list.splice(index, 1); //删除 writeData(data, () { //写入 goIndex(res); //去首页 }); // writeData(data, () goIndex(res)); }) } else if (req.url.startsWith(/submit) req.method GET) { // get 添加 // 1- 获取 前端提交表单数据 // 2- 把数据添加到数据库中 // 数据以字符串形式存储要以数组的形式去操作 // 1- 读取data.json数据转出js的数组 // 2- 向数组中添加 // 3- 添加完成后在把数组 写回 data.json 中 // 3- 添加完成后跳转到首页 let info url.parse(req.url, true).query; info.id Date.now(); info.created moment().format(YYYY年MM月DD日 HH:mm:ss); // 添加 readData((data) { data.list.push(info); //添加 writeData(data, () goIndex(res)); }); } else if (req.url.startsWith(/submit) req.method POST) { // post 添加 // 1- 获取 前端提交表单数据 // 2- 把数据添加到数据库中 // 数据以字符串形式存储要以数组的形式去操作 // 1- 读取data.json数据转出js的数组 // 2- 向数组中添加 // 3- 添加完成后在把数组 写回 data.json 中 // 3- 添加完成后跳转到首页 // 前端以post方式给后台传递了数据 会触发事件 let str ; req.on(data, (chunk) { str chunk; }) req.on(end, () { let info queryString.parse(str); info.id Date.now(); info.created moment().format(YYYY年MM月DD日 HH:mm:ss); // 添加 readData((data) { data.list.push(info); //添加 writeData(data, () goIndex(res)); }) }); } else { // 404 res.end(404); } }); server.listen(9999, () { console.log(http://localhost:9999 服务器已启动) }) // 封装公共代码 // 如何封装 提取公共代码 变化部分 作为参数 // 1- 读取data.json文件数据的方法 // 2- 写入data.json文件的方法 // 3- 重定向的方法 // 1- 读取data.json文件数据的方法 // fn 读取数据完成后的处理逻辑 function readData (fn) { fs.readFile(path.join(__dirname, data/data.json), utf8, (err, data) { if (err) { return console.log(err); } //json--js data JSON.parse(data); // 后续处理数据 ,将读取的数据交给fn进行处理 fn fn(data); // if (fn) { // fn(data); // } }) } // 2- 写入data.json文件的方法 // data: 要写入的数据 // fn: 写入完成后处理逻辑 function writeData (data, fn) { data JSON.stringify(data); // js对象转成json fs.writeFile(path.join(__dirname, data/data.json), data, (err) { if (err) { return console.log(err); } //写入成功的后续操作 fn fn(); }) } // 3- 重定向的方法 // res: 响应报文的对象 function goIndex (res) { res.statusCode 302; res.setHeader(location, /index); res.end(); } // function click (fn) {} // $(div).click(function (){ });留言板3.0完整留言板3.0资源目标 动态渲染 留言板案例 1- 搭建服务器 2- 首页留言动态渲染 数据 模板 1- 读取数据库data.json中的数据 2- 配合模板引擎 进行渲染 3- 把生成好页面结构返回给浏览器解析 3- 删除留言 1- 获取前端传递id 2- 根据id去数据库中删除对应的 数据 数据以字符串形式存储要以数组的形式去操作 1- 读取data.json数据转出js的数组 2- 从数组中删除 3- 删除完成后在把数组 写回 data.json 中 3- 删除完成后跳转到首页 4- 添加留言 1- 获取 前端提交表单数据 2- 把数据添加到数据库中 数据以字符串形式存储要以数组的形式去操作 1- 读取data.json数据转出js的数组 2- 向数组中添加 3- 添加完成后在把数组 写回 data.json 中 3- 添加完成后跳转到首页 get post// 处理具体功能模块 // 提供各种功能 向外暴露 const fs require(fs); const path require(path); const template require(art-template); const mime require(mime); const url require(url); const moment require(moment); const queryString require(querystring); const tools require(./tools); module.exports { showIndex (req, res) { //显示首页 // 1- 读取数据库data.json中的数据 // 2- 配合模板引擎 进行渲染 // 3- 把生成好页面结构返回给浏览器解析 tools.readData(function (data) { //data就是读取到数据 //读取到数据后 执行逻辑 // 对数据进行排序 // data.list.sort(function (a, b) { // return b.id - a.id; // }) data.list.sort((a, b) b.id - a.id); // console.log(data); let str template(path.join(__dirname, pages/index.html), data); // 渲染 res.end(str); }) }, showAdd (req, res) {//显示add.html // 直接读取 add页面返回即可 fs.readFile(path.join(__dirname, pages/add.html), (err, data) { if (err) { return console.log(err); } res.end(data); //返回读取的页面 }) }, showAssets (req, res) { // 显示静态资源 // 直接读取静态资源返回即可 fs.readFile(path.join(__dirname, req.url), (err, data) { if (err) { return console.log(err); } // 给返回资源设置明确的mime类型 res.setHeader(content-type, mime.getType(req.url)); // 返回读取数据 res.end(data); }) }, delete (req, res) { // 删除 // 1- 获取前端传递id // 2- 根据id去数据库中删除对应的 数据 // 数据以字符串形式存储要以数组的形式去操作 // 1- 读取data.json数据转出js的数组 // 2- 从数组中删除 // 3- 删除完成后在把数组 写回 data.json 中 // 3- 删除完成后页面重新渲染 let id url.parse(req.url, true).query.id; // 获取id tools.readData(function (data) { // data是读取的数据 let index data.list.findIndex(v v.id id); //找下标 data.list.splice(index, 1); //删除 tools.writeData(data, () { //写入 tools.goIndex(res); //去首页 }); // tools.writeData(data, () tools.goIndex(res)); }) }, getSubmit (req, res) { // get 添加 // 1- 获取 前端提交表单数据 // 2- 把数据添加到数据库中 // 数据以字符串形式存储要以数组的形式去操作 // 1- 读取data.json数据转出js的数组 // 2- 向数组中添加 // 3- 添加完成后在把数组 写回 data.json 中 // 3- 添加完成后跳转到首页 let info url.parse(req.url, true).query; info.id Date.now(); info.created moment().format(YYYY年MM月DD日 HH:mm:ss); // 添加 tools.readData((data) { data.list.push(info); //添加 tools.writeData(data, () tools.goIndex(res)); }); }, postSubmit (req, res) { //post方式添加 // 1- 获取 前端提交表单数据 // 2- 把数据添加到数据库中 // 数据以字符串形式存储要以数组的形式去操作 // 1- 读取data.json数据转出js的数组 // 2- 向数组中添加 // 3- 添加完成后在把数组 写回 data.json 中 // 3- 添加完成后跳转到首页 // 前端以post方式给后台传递了数据 会触发事件 let str ; req.on(data, (chunk) { str chunk; }) req.on(end, () { let info queryString.parse(str); info.id Date.now(); info.created moment().format(YYYY年MM月DD日 HH:mm:ss); // 添加 tools.readData((data) { data.list.push(info); //添加 tools.writeData(data, () tools.goIndex(res)); }) }); }, show404 (req, res) { //显示404 res.end(404); } }// 引入 const http require(http); const router require(./router); // 创建服务器 const server http.createServer(); // 监听请求 server.on(request, (req, res) { // 找路由模块处理路由 router(req, res); }); // 启动服务器 server.listen(9999, () { console.log(http://localhost:9999 服务器已启动) });// 路由 是一套匹配规则 用分配任务 不需要处理细节 // 以函数的形式进行暴露函数可以接受参数 const handler require(./hanlder); module.exports function (req, res) { console.log(req.url:, req.url); // 路由功能 if (req.url.startsWith(/index) || req.url /) { //首页 handler.showIndex(req, res); } else if (req.url.startsWith(/add)) { // add.html handler.showAdd(req, res); } else if (req.url.startsWith(/assets)) { //静态资源 handler.showAssets(req, res); } else if (req.url.startsWith(/delete)) { // 删除 handler.delete(req, res); } else if (req.url.startsWith(/submit) req.method GET) { // get 添加 handler.getSubmit(req, res); } else if (req.url.startsWith(/submit) req.method POST) { // post 添加 handler.postSubmit(req, res); } else { // 404 handler.show404(req, res); } }const fs require(fs); const path require(path); // 封装公共代码 // 如何封装 提取公共代码 变化部分 作为参数 // 1- 读取data.json文件数据的方法 // 2- 写入data.json文件的方法 // 3- 重定向的方法 module.exports { // 1- 读取data.json文件数据的方法 // fn 读取数据完成后的处理逻辑 readData (fn) { fs.readFile(path.join(__dirname, data/data.json), utf8, (err, data) { if (err) { return console.log(err); } //json--js data JSON.parse(data); // 后续处理数据 ,将读取的数据交给fn进行处理 fn fn(data); // if (fn) { // fn(data); // } }) }, // 2- 写入data.json文件的方法 // data: 要写入的数据 // fn: 写入完成后处理逻辑 writeData (data, fn) { data JSON.stringify(data); // js对象转成json fs.writeFile(path.join(__dirname, data/data.json), data, (err) { if (err) { return console.log(err); } //写入成功的后续操作 fn fn(); }) }, // 3- 重定向的方法 // res: 响应报文的对象 goIndex (res) { res.statusCode 302; res.setHeader(location, /index); res.end(); } }留言板4.0完整留言板4.0资源1- 搭建服务器 2- 首页渲染 取数据 模板引擎 1-读取data.json中数据 配合模板引擎渲染 3- 删除留言 1-后台获取前端传递id 2-根据di找到对应下标 3-根据下标删除 4-删除完成后跳转到首页 4- 添加留言 1- 获取前端 post方式提交数据 2- 把数据添加到数据库中 3- 添加完成后跳转到首页// 搭建服务器 const express require(express); // 引入 const router require(./router); const bodyParser require(body-parser); const app express(); //创建实例 // 配置模板引擎使用 app.engine(html, require(express-art-template)); // 设置模板的位置 app.set(views, pages); // 处理静态资源 app.use(/assets, express.static(assets)); // 给req.body赋值 app.use(bodyParser.urlencoded({ extended: false })); //绑定路由 app.use(router); app.listen(9999, () console.log(http://localhost:9999 服务器已启动));// 使用外置路由对象绑定路由 const express require(express); const fs require(fs); const path require(path); const moment require(moment); const router express.Router(); //创建外置路由对象 // 绑定路由 router.get(/, (req, res) { //首页 // 读取data.json中数据 配合模板引擎渲染 // readData(data { //data是读取的数据 // res.render(index.html, data); // }) readData(data res.render(index.html, data)); }) router.get(/index, (req, res) { //首页 res.redirect(/); //重定向到 / }); router.get(/add, (req, res) { //add添加页面 // 直接读取返回 res.sendFile(path.join(__dirname, pages/add.html)); }) router.get(/delete, (req, res) { //删除 // 1-后台获取前端传递id // 2-根据id找到对应下标 // 3-根据下标删除 // 4-删除完成后跳转到首页 let id req.query.id; // url.parse(req.url, true).query; readData(data { let index data.list.findIndex(v v.id id); //找下标 data.list.splice(index, 1); //删除 writeData(data, () res.redirect(/)); // 写入完成后跳转首页 }); }) router.post(/submit, (req, res) { //post 添加 // 1- 获取前端 post方式提交数据 // 2- 把数据添加到数据库中 // 3- 添加完成后跳转到首页 let info req.body; // 添加id 和创建时间 info.id Date.now(); info.created moment().format(YYYY年MM月DD日 HH:mm:ss); readData(data { data.list.push(info);//添加 writeData(data, () res.redirect(/)); // 写入完成后去首页 }) }); // 导出 module.exports router; // 封装 读写data.json数据方法 function readData (fn) { fs.readFile(path.join(__dirname, data/data.json), utf8, (err, data) { if (err) { return console.log(err); } data JSON.parse(data); // json -js fn fn(data); // 由fn 处理读取的数据 }) } function writeData (data, fn) { data JSON.stringify(data); fs.writeFile(path.join(__dirname, data/data.json), data, err { if (err) { return console.log(err); } //执行后续操作 fn fn(); }) }留言板5.0完整留言板5.0资源目标 基于express 和 mysql数据库 实现留言板5.0 一、 准备好数据库 1-创建 zlyb数据库 2-向数据库中输入 meassge.sql user.sql , 注意 编码utf-8 二、 搭建服务器 三、 完成具体各个功能 首页渲染 取数据 模板 取数据库获取所有数据通过模板引擎渲染到页面中 删除思路 获取前端传递id根据id去数据库删除对应的数据删除完成后重新跳转到首页 添加思路 获取前端提交的数据 给数据添加创建时间 把数据添加到数据库中 添加完成 重新跳转到首页// 封装一个 node 操作mysql数据的方法 // 如何封装 提供公共代码 变化部分作为参数 // 使用mysql模块 操作mysql数据库 // 1- 下载 npm i mysql // 2- 引入 // 3-使用 // 大致步骤 // 1- 通过服务器 连接上数据库 // 2- 对数据库进行操作 // 3- 断开和数据连接 // 具体实现步骤 // 1-准备好 账号信息 // 2-创建一个数据库连接 // 3-连接上数据库 // 4-进行操作 // 5-断开和数据库连接 const mysql require(mysql); // 1-准备好 账号信息 let info { host: 127.0.0.1, user: root, password: root, database: zlyb } /* sql: 要执行sql语句 param: sql语句中参数 用来替换?的 fn: 操作完成后 后续处理逻辑 */ function myQuery (sql, param, fn) { // 2-创建一个数据库连接 let con mysql.createConnection(info); // 3- 连接上数据库 con.connect(); // 4-操作 con.query(sql, param, (err, data) { if (err) { return console.log(err); } //后续处理 fn fn(data); }); // 5-断开 con.end(); } // 暴露 module.exports myQuery;// 基于express 搭建服务器 const express require(express); const router require(./rotuer); const bodyParser require(body-parser); const app express(); //创建服务器 // 配置模板引擎 app.engine(html, require(express-art-template)); // 模板目录 app.set(views, pages); // 静态资源托管 app.use(/assets, express.static(assets)); // 给req.body赋值 app.use(bodyParser.urlencoded({ extended: false })); // 处理路由 app.use(router); app.listen(9999, () console.log(http://localhost:9999 服务器已启动));// 外置路由对象 提供路由 const express require(express); const path require(path); const moment require(moment); const db require(./db); // 创建 外置路由对象 const router express.Router(); // 绑定路由 router.get(/, (req, res) { // 首页 // 取数据库获取所有数据通过模板引擎渲染到页面中 db(select * from message, null, (data) { // console.log(data); // data是数组 res.render(index.html, { list: data }); // 渲染 }) }); router.get(/index, (req, res) { //首页 res.redirect(/); }) router.get(/add, (req, res) { //添加 res.sendFile(path.join(__dirname, pages/add.html)); }) router.get(/delete, (req, res) { // 删除 // 获取前端传递id根据id去数据库删除对应的数据删除完成后重新跳转到首页 let id req.query.id; db(delete from message where id ?, id, () res.redirect(/)); }) router.post(/submit, (req, res) { // post 提交 // 获取前端提交的数据 给数据添加创建时间 把数据添加到数据库中 添加完成 重新跳转到首页 let info req.body; info.created moment().format(YYYY-MM-DD HH:mm:ss); db(insert into message set ?, info, () res.redirect(/)); }) // 作业 以上代码 都用一行写出来 // 导出 module.exports router;

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询